Cod sursa(job #650658)
Utilizator | Dutca Bogdan Andrei FIIDutca | Data | 18 decembrie 2011 17:12:52 |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 10 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include<stdio.h>
#include<math.h>
int main()
{
int n,j,i,a,s,nr;
FILE *f, *g;
f=fopen ("ssnd.in","r");
g=fopen ("ssnd.out","w");
fscanf(f,"%d",&n);
for(j=1;j<=n;j++)
{
fscanf(f,"%d",&a);
double radical=sqrt(a);
if (a==1)
{
s=1;nr=1;
}
else
{
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,"%d %d\n",nr,s);
}
fclose(f);
fclose(g);
return 0;
}