Cod sursa(job #1014200)
Utilizator | Iulia Duta jul123 | Data | 22 octombrie 2013 12:49:12 |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include <iostream>
#include<fstream>
using namespace std;
int main()
{
int i, p, e, t, n, nrdiv, sdiv, p1;
ifstream f("ssdt.in");
ofstream g("ssdt.out");
f>>t;
for(i=0;i<t;i++)
{
f>>n;
p=2;
nrdiv=1;
sdiv=1;
while(n!=1)
{
e=0;
p1=p;
while(n%p == 0 && n)
{
n /= p;
e++;
p1*=p;
}
if(e != 0){
nrdiv *= (e+1);
sdiv*=(p1-1)/(p-1);
}
p++;
}
g<<nrdiv<<" "<<sdiv<<"\n";
}
}