Pagini recente » Cod sursa (job #1614849) | Cod sursa (job #1520586) | Cod sursa (job #111341) | Cod sursa (job #2587842) | Cod sursa (job #1812930)
#include<bits/stdc++.h>
#define max1 1000003
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long t,n,s,d,np;
bitset<max1>v;
long long v1[100002];
void ciur()
{
np=1;
v1[1]=2;
for(int i=4;i<=max1;i+=2)
v[i]=1;
for(long long i=3;i<=max1;i+=2)
{
if(v[i]==0)
{
++np;
v1[np]=i;
if(i*i<max1)
for(long long j=i*i;j<=max1;j=j+i)
v[j]=1;
}
}
}
int main()
{
f>>t;
ciur();
for(int i=1;i<=t;++i)
{
f>>n;
long long n1=n;
s=1;
d=1;
for(int j=1;v1[j]*v1[j]<=n;++j)
if(n%v1[j]==0)
{
int nd=0;
long long q=v1[j];
while(n%q==0)
{
++nd;
n1/=v1[j];
q=q*v1[j];
}
d=d*(nd+1);
s=s*(q-1)/(v1[j]-1);
}
if(n1>1)
{
if(n1==n)
g<<2<<" "<<(n+1)%9973<<'\n';
else{
g<<d*2<<" ";
g<<(s*(n1*n1-1)/(n1-1))%9973<<'\n';
}
}
else
g<<d<<" "<<s%9973<<'\n';
}
return 0;
}