Cod sursa(job #650668)
Utilizator | Data | 18 decembrie 2011 17:49:49 | |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 10 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include<stdio.h>
#include<math.h>
int main()
{
int n,j,i,a;
long 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,"%lld %lld\n",nr,s);
}
fclose(f);
fclose(g);
return 0;
}