Cod sursa(job #1262686)
| Utilizator | Data | 13 noiembrie 2014 14:21:26 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 10 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.69 kb |
#include <stdio.h>
#include <stdlib.h>
int s;
int nrdiv(int n){
int d, nr=2;
s=1+n;
for(d=2;d*d<=n;d++){
if(n%d==0){
if(d*d==n){
nr++;
s+=d;
}
else{
nr+=2;
s+=d+(n/d);
}
}
}
return nr;
}
int main(){
FILE *fin, *fout;
int t, i, nr, nrr;
fin=fopen("ssnd.in", "r");
fout=fopen("ssnd.out", "w");
fscanf(fin, "%d", &t);
for(i=0;i<t;i++){
fscanf(fin, "%d", &nr);
nrr=nrdiv(nr);
fprintf(fout, "%d %d\n", nrr, s);
}
fclose(fin);
fclose(fout);
return 0;
}
