Cod sursa(job #523283)
Utilizator | Enal Gemaledin Blaugranas | Data | 17 ianuarie 2011 17:53:14 |
---|---|---|---|
Problema | Suma si numarul divizorilor | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.9 kb |
#include<fstream.h>
#include<iostream.h>
int test,u,nr;
long long n,t,s;
long k,i,j,l,q,r;
int main()
{ifstream f1("ssnd.in");
ofstream f2("ssnd.out");
f1>>test;
for(u=1;u<=test;u++)
{f1>>n;
i=2;
t=n;
s=1;
nr=1;
while(i<=t)
{j=0;
while(t%i==0)
{j++;
t/=i;
if(t==1)
{nr=nr*(j+1);
q=i+1;
for(r=1;r<j;r++)
q=q*i+1;
s*=q;}}
if(j!=0&&t>1)
{nr=nr*(j+1);
q=i+1;
for(r=1;r<j;r++)
q=q*i+1;
s*=q;}
i++;}
if(s==1)
{nr=2;
s+=n;}
f2<<nr<<" "<<s%9973<<endl;}
f1.close();
f2.close();
return 0;}