Pagini recente » Cod sursa (job #2254310) | Cod sursa (job #449196) | Cod sursa (job #1937212) | Cod sursa (job #999792) | Cod sursa (job #767387)
Cod sursa(job #767387)
#include <cstdio>
#include<bitset>
using namespace std;
bitset<1000010> P;
void read(),solve();
int i,j,k,m,prim[100000],t,v,val,sum,nr,cnt;
long long sup,sub,f;
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d",&t);
}
void solve()
{
k=1;
prim[1]=2;
for(i=3;i<1000;i+=2)
if(!P[i])
{
prim[++k]=i;m=2*i;
for(j=i*i;j<=1000000;j+=m)P[j]=1;
}
for(i=1001;i<=1000000;i+=2)
if(!P[i])
prim[++k]=i;
for(;t;--t)
{
scanf("%d",&val);
v=val;
sum=1;
sup=1;
sub=1;
for(i=1;prim[i]<=v;i++)
{
nr=0;
for(;!(v%prim[i]);v/=prim[i])nr++;
cnt=prim[i];
for(j=1;j<=nr;j++)cnt*=prim[i];
if(nr){sup*=(cnt-1);sup%=9973;sub*=(prim[i]-1);sub%=9973;}
sum*=(nr+1);
}
f=sup/sub;
printf("%d %lld\n",sum,f);
}
}