Pagini recente » Cod sursa (job #1077357) | Cod sursa (job #1344711) | Cod sursa (job #1416181) | Cod sursa (job #2326379) | Cod sursa (job #654216)
Cod sursa(job #654216)
#include<cstdio>
#include<cmath>
bool b[1000010];
void ciur(int n){
for(int i=2;i<=n;++i)
if(!b[i])
for(int j=2;j<=n/i;++j)
b[i*j]=1;
}
int main(void){
FILE *fin = fopen("ssnd.in","r");
FILE *fout = fopen("ssnd.out","w");
int i,t,suma,sumdiv,nrdiv,d,p; long long n=0;
fscanf(fin,"%d",&t);
ciur(1000000);
while(t--){
fscanf(fin,"%llu",&n);
nrdiv=1; sumdiv=1; i=2;
while(n!=1){
if(!b[i] && n%i==0){
d=0; p=b[i]; p=1;
while(n%i==0 && n!=1){ ++d; n/=i; p*=i; }
nrdiv*=(d+1);
p*=i; p-=1; sumdiv*=(p/(i-1));
++i;
}
else ++i;
}
fprintf(fout,"%d %d\n",nrdiv,sumdiv);
}
return 0;
}