Pagini recente » Cod sursa (job #555583) | Cod sursa (job #1508747) | Cod sursa (job #2586856) | Cod sursa (job #455575) | Cod sursa (job #1418247)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 1000001
#define MAXPRIME 78498
char ciur[MAXN];
int v[MAXN];
int main(){
FILE*fi,*fout;
int con,i,j,t,nrdiv,e,d;
long long sdiv,p,nr;
fi=fopen("ssnd.in" ,"r");
fout=fopen("ssnd.out" ,"w");
fscanf(fi,"%d" ,&t);
for(i=2;i*i<=MAXN;i++)
if(ciur[i]==0)
for(j=i*i;j<=MAXN;j=j+i)
ciur[j]=1;
con=0;
for(i=2;i<=MAXN;i++)
if(ciur[i]==0)
v[con++]=i;
for(i=0;i<t;i++){
fscanf(fi,"%lld" ,&nr);
d=v[0];
nrdiv=j=sdiv=1;
while(d*d<=nr){
e=0;
p=1;
while(nr%d==0){
nr=nr/d;
p=p*d;
e++;
}
sdiv=sdiv*(p*d-1)/(d-1);
nrdiv=nrdiv*(e+1);
d=v[j++];
}
if(nr>1){
nrdiv=nrdiv*2;
sdiv=sdiv*(nr*nr-1)/(nr-1);
}
fprintf(fout,"%d %lld\n" ,nrdiv,sdiv);
}
fclose(fi);
fclose(fout);
return 0;
}