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