Pagini recente » Cod sursa (job #1482566) | Cod sursa (job #1394497) | Cod sursa (job #1832413) | Cod sursa (job #2064517) | Cod sursa (job #1903438)
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
bool v[1000010];
int suma,nr,n,t, d[80000];
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;
int k=0;
for(int i=2;i<=1000000;i++)
if(v[i]==0) d[++k]=i;
}
void ssnr(int x)
{
suma=1;
nr=1;
int putere=1;
for(int i=1;d[i]*d[i]<=x;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*=d[i];
}
suma*=((putere-1)%9973)/((d[i]-1)%9973);
}
}
if(x!=1)
{
nr*=2;
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;
}