Pagini recente » Cod sursa (job #1327970) | Cod sursa (job #764338) | Cod sursa (job #2176438) | Cod sursa (job #418676) | Cod sursa (job #1496727)
#include <stdio.h>
long long pow(unsigned long long n,unsigned long long p){
long long x=1;
while(p){
if(p&1){
x*=n;
p--;
}
n*=n;
p>>=1;
}
return x;
}
int main(){
unsigned t; unsigned long long n;
FILE*f=fopen("ssnd.in","r");
fscanf(f,"%u",&t);
FILE*g=fopen("ssnd.out","w");
while(t--){
fscanf(f,"%llu",&n);
unsigned long long q=0,Q=1,x=3,suma=1;
while(n%2==0&&n){
n/=2;
q++;
}
if(q){
Q*=q+1;
suma*=pow(2,q+1)-1;
}
while(n>1){
q=0;
while(n%x==0){
q++;
n/=x;
}
if(q){
Q*=q+1;
suma*=(pow(x,q+1)-1)/(x-1);
}
x+=2;
}
if(Q==1)
q=2;
fprintf(g,"%u ",Q);
fprintf(g,"%llu\n",suma);
}
fclose(f);
fclose(g);
return 0;
}