Cod sursa(job #580383)
Utilizator | kill03 informatician29 | Data | 13 aprilie 2011 01:17:58 |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.4 kb |
#include<fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int main()
{int t,n,nrdiv,sumadiv,j,fm,i=2,putere,k;
f>>t;
for(j=1;j<=t;j++)
{
f>>n; nrdiv=sumadiv=putere=1; fm=0;
do{
while(n%i==0)
{fm++;
n/=i;}
nrdiv*=(fm+1);
for(k=1;k<=fm+1;k++) putere*=i;
sumadiv*=(putere-1)/(i-1);
i++;
}while(n!=1);
g<<nrdiv<<" "<<sumadiv<<'\n';}
}