Pagini recente » Monitorul de evaluare | Cod sursa (job #2842720) | Cod sursa (job #2623599) | Cod sursa (job #2295536) | Cod sursa (job #2482678)
#include <iostream>
#include <fstream>
#define mod 9973;
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int sumdiv(long long n)
{
int numar=1,rez=1,suma=1,i;
for(i=2;i*i<=n;i++)
{
numar=1;
suma=1;
while(n%i==0)
{
numar=(1LL*numar*i)%mod;
suma=(1LL*suma+numar)%mod;
n=n/i;
}
rez=(1LL*rez*suma)%mod;
}
if(n>=2)
rez=(1LL*rez*(n+1))%mod;
return rez;
}
int nrdiv(long long n)
{
int nrd=1,d=2,p=0;
while(n>1)
{
p=0;
while(n%d==0)
{
p++;
n=n/d;
}
if(p>0)
nrd=nrd*(p+1);
if(d==2)
d++;
else
d=d+2;
if(n>1 && d*d>n)
d=n;
}
return nrd;
}
int main()
{
int n,i;
long long x;
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
g<<nrdiv(x)<<" "<<sumdiv(x)<<endl;
}
return 0;
}