Pagini recente » Cod sursa (job #763430) | Cod sursa (job #338338) | Cod sursa (job #2803275) | Cod sursa (job #626697) | Cod sursa (job #650547)
Cod sursa(job #650547)
#include <stdio.h>
#include<stdlib.h>
int v[1000001];
int prim[100000];
FILE *f,*g;
void ciur(){
int j,i;
prim[0]=1;
prim[1]=2;
for(i=3;i<=1000000;i+=2){
if(v[i]==0){
prim[++prim[0]]=i;
for(j=3*i;j<=1000000;j+=2*i)
v[j]=1;
}
}
}
void sol(long long nr)
{
long y, sum, t, i, exp;
y=sum=1;
for(i=1; prim[i]*prim[i]<=nr ;i++){
if(nr%prim[i]==0){
exp=1;
t=prim[i];
while(nr%prim[i]==0){
exp++;
nr=nr/prim[i];
t=t*prim[i];}
y*=exp;
sum*=(t-1)/(prim[i]-1)%9973;}}
if(nr!=1){
sum*=(nr*nr-1)/(nr-1)%9973;
y*=2;}
fprintf(g,"%ld %ld",y,sum%9973);
}
int main()
{
f=fopen("ssnd.in","r");
g=fopen("ssnd.out","w");
long n, nr;
ciur();
fscanf(f,"%ld",&n);
while(n--){
fscanf(f,"%ld",nr);
sol(nr);}
fclose(f);fclose(g);
return 0;
}