Cod sursa(job #1644845)
| Utilizator | Data | 10 martie 2016 09:49:28 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.78 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int nrdiv(long long k)
{
int i, nr=0;
if(k==1)
return 1;
else
{
for(i=1;i*i<k;i++)
if(k%i==0)
{
nr=nr+2;
}
if(i*i==k)
nr++;
}
return nr;
}
int sumdiv (long long k)
{
long long i, s=0;
if(k==1)
return 1;
else
{
for(i=1;i*i<k;i++)
if(k%i==0)
s=s+i+k/i;
if(i*i==k)
s=s+i;
}
return s;
}
int main()
{
long long x, k, i;
f>>k;
for(i=1;i<=k;i++)
{f>>x;
g<<nrdiv(x)<<" "<<sumdiv(x)<<"\n";}
return 0;
}
