Cod sursa(job #1342868)
| Utilizator | Data | 14 februarie 2015 16:45:59 | |
|---|---|---|---|
| Problema | Suma si numarul divizorilor | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include<iostream>
#include<fstream>
using namespace std;
long putere(long d,long p)
{
long prod=1;
for(int i=1;i<d;i++)
prod=prod*d;
return prod;
}
int main()
{ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long n,d=2,p=0,nr=1,s=1,x;
fin>>n;
for(int i=1;i<=n;i++)
{fin>>x;nr=1;s=1;
d=2;
while(x>1)
{
p=0;
while(x%d==0)
{
x=x/d;
p++;
}
if(p) {
nr=nr*(p+1);
s=s*(putere(d,p+1)-1)/(d-1);
}
d++;
}
fout<<nr<<" "<<s<<"\n";
}
return 0;
}
