Pagini recente » Cod sursa (job #100657) | Cod sursa (job #320985) | Cod sursa (job #1468156) | Cod sursa (job #2254847) | Cod sursa (job #1903518)
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
bool v[1000010];
long long suma,nr,n,t;
int d[80000],k;
void ciur()
{
for(int i=2;i*i<=1000000;i++)
{
if(v[i]==0)
{
for(int j=i*i;j<=1000000;j+=i)
v[j]=1;
}
}
v[0]=v[1]=1;
k=0;
for(int i=2;i<=1000000;i++)
if(v[i]==0) d[++k]=i;
}
void ssnr(long long x)
{
suma=1;
nr=1;
long long putere=1;
for(int i=1;d[i]*d[i]<=x && x>1 && i<=k;i++)
{
if(x%d[i]==0)
{
int p=0;
while(x%d[i]==0)
{
x/=d[i];
p++;
}
nr*=(p+1);
for(int j=1;j<=p+1;j++)
{
putere=(putere*d[i])%9973;
}
suma*=((putere-1)%9973)/((d[i]-1)%9973);
}
}
if(x!=1)
{
nr*=2;
x=x%9973;
suma*=((x*x-1)/(x-1))%9973;
}
}
int main()
{
f>>t;
ciur();
for(int i=1;i<=t;i++)
{
f>>n;
ssnr(n);
g<<nr<<" "<<suma<<'\n';
}
return 0;
}