Cod sursa(job #650664)
Utilizator | Data | 18 decembrie 2011 17:32:19 | |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 10 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include<stdio.h>
#include<math.h>
int main()
{
int n,j,i,a;
long s,nr;
FILE *f, *g;
f=fopen ("ssnd.in","r");
g=fopen ("ssnd.out","w");
fscanf(f,"%d\n",&n);
for(j=1;j<=n;j++)
{
fscanf(f,"%d\n",&a);
double radical=sqrt(a);
s=1+a;nr=2;
for(i=2;i<=radical;i++)
if(a%i==0)
{
s=s+i+a/i;
nr=nr+2;
}
if(radical==(int)radical)
{
s=s-radical;
nr--;
}
fprintf(g,"%ld %ld\n",nr,s);
}
fclose(f);
fclose(g);
return 0;
}