Pagini recente » Monitorul de evaluare | Borderou de evaluare (job #2632159) | Cod sursa (job #581467)
Cod sursa(job #581467)
#include<fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
char prim[2000005];
int ciur(long long nr)
{ long long i,j;
for(i=2;i<=nr;i++)
prim[i]=1;
for(i=2;i<=nr;i++)
if(prim[i])
{for(j=i*i;j<=nr;j+=i)
prim[j]=0;
}
}
long long powA(long long baza, long long exponent)
{long long k,putere;
putere=1;
for(k=1;k<=exponent+1;k++)
putere*=baza;
return putere;
}
int main()
{ long long n,nrdiv,sumadiv,j,fm,i; int t;
f>>t;
for(j=1;j<=t;j++)
{
f>>n; ciur(n); nrdiv=sumadiv=1;
if(prim[n]) {nrdiv*=2; sumadiv*=(1+n);} else
{i=2;
do{fm=0;
while(n%i==0 )
{fm++;
n/=i;}
nrdiv*=(fm+1);
sumadiv*=(powA(i,fm)-1)/(i-1);
i++;
}while(n!=1);
}g<<nrdiv<<" "<<sumadiv%9973<<'\n';}
}