Cod sursa(job #498971)
| Utilizator | Data | 7 noiembrie 2010 21:26:28 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.41 kb |
#include<stdio.h>
#include<math.h>
#define D 9973
int main(){
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
int t,nr;
long long n,d1,d2,s,r;
scanf("%d",&t);
while(t--){
scanf("%lld",&n);
nr=2;
s=n+1;
for(d1=2;d1*d1<=n;d1++)
if(n%d1==0){
d2=n/d1;
s+=(d1+d2);
nr+=2;
}
r=sqrt(n);
if(r*r==n){
s-=r;
nr--;
}
printf("%d %lld\n",nr,s%D);
}
return 0;
}
