Pagini recente » Cod sursa (job #380524) | Cod sursa (job #796100) | Cod sursa (job #1973199) | Cod sursa (job #1262211) | Cod sursa (job #687165)
Cod sursa(job #687165)
#include<stdio.h>
#include<algorithm>
#include<math.h>
#define lim 1000001
FILE *f =fopen("ssnd.in","r");
FILE *g =fopen("ssnd.out","w");
int t;
long long n;
int prim[lim];
long long nrp[lim];
void ceva(long long n){
int putere,p,suma=1;
int nrdiv=1;
int r=n;
for(int i=1;nrp[i]*nrp[i]<=r;i++){
if(n%nrp[i]==0){
p=nrp[i];
putere=1;
while(n%nrp[i]==0){
p*=nrp[i];
n/=nrp[i];
putere++;
}
nrdiv*=putere;
suma*=(p-1)/(nrp[i]-1)%9973;
}
}
if(n!=1){
suma*=(n*n-1)/(n-1)%9973;
nrdiv*=2;
}
fprintf(g,"%d %d\n",nrdiv, suma);
}
int main(){
fscanf(f,"%d",&t);
for(int i=2;i<=lim;i++)
if(prim[i]==0)
for(int j=i+i;j<=lim;j+=i)
prim[j]=1;
int k=0;
for(int i=2;i<=lim;i++)
if(!prim[i])
nrp[++k]=i;
for(int i=1;i<=t;i++){
fscanf(f,"%lld",&n);
ceva(n);
}
fclose(f);
fclose(g);
return 0;
}