Cod sursa(job #1516973)
Utilizator | Cretu Ovidiu CretuOvidiu | Data | 3 noiembrie 2015 19:11:53 |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
using namespace std;
long long n,i,x,d,k,s,d1,d2;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int main()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>x;
k=0;
s=0;
for(d=1;d*d<=x;d++)
if(x%d==0) ///d e divizor
{
d1=d;
d2=x/d; /// d1*d2=x
if (d1==d2) {k++, s=s+d1;}
else
{
k=k+2; /// 2 divizori distincti
s=s+d1+d2;
}
}
fout<<k<<' '<<s<<'\n';
}
return 0;
}