Pagini recente » Borderou de evaluare (job #2243376) | Borderou de evaluare (job #201636) | Cod sursa (job #1511773) | Cod sursa (job #979563) | Cod sursa (job #2165100)
#include <fstream>
#include <bitset>
#define NM 1000000
#include <algorithm>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long n,m,i,j,nrd,p1,p2,x,nr,p;
long long v[NM];
bitset <NM> c;
int main()
{
f>>n; m=0;
for(i=2;i*i<=NM;i++){
if(c[i]==0){
v[++m]=i;
for(j=i*i;j<=NM;j+=i) c[i]=1;
}
}
for(j=sqrt(NM)+1;j<=NM;j++) if(c[j]==0) v[++m]=j;
//for(i=1;i<=m;i++) g<<v[i]<<' ';
for(i=1;i<=n;i++){
f>>x;
j=1; nrd=1; p1=1; p2=1;
while(v[j]*v[j]<=x){
nr=0; p=v[j];
while(x%v[j]==0) { x/=v[j]; p*=v[j]; nr++; }
p1=((p1*(p-1))/(v[j]-1))%9973; //p2=p2*(v[j]-1);
nrd=nrd*(nr+1);
j++;
}
if(x!=1){ p1=((p1*((x*x)-1))/(x-1))%9973; nrd*=2; }
g<<nrd<<' '<<p1%9973<<'\n';
}
return 0;
}