Pagini recente » Cod sursa (job #1649773) | Cod sursa (job #299883) | Cod sursa (job #896352) | Cod sursa (job #1567028) | Cod sursa (job #687213)
Cod sursa(job #687213)
#include<stdio.h>
#include<bitset>
#define mod 9973
using namespace std;
FILE*f=fopen("ssnd.in","r");
FILE*g=fopen("ssnd.out","w");
long long n,v[80000];
int nr,t;
bitset <1000001> c;
struct div
{
int e;
long long p;
} w[50001];
int put(long long x,int e)
{
int p=1;
while(e)
{
if(e%2)
p=(p%mod)*(x%mod)%mod;
x=(x%mod)*(x%mod)%mod;
e/=2;
}
return p;
}
int main()
{
v[++nr]=2;
for(register int i=3;i<=1000000;i+=2)
if(!c[i])
{
v[++nr]=i;
for(register int j=i+i;j<=1000000;j+=i)
c[j]=1;
}
fscanf(f,"%d",&t);
int X,Y,p,s;
long long N;
for(register int o=1;o<=t;++o)
{
fscanf(f,"%lld",&n);
N=n;
p=1;
s=1;
for(register int i=1;v[i]*v[i]<=N&&n>1;++i)
{
if(n%v[i]==0)
{
X=0;
Y=v[i];
while(n%v[i]==0)
{
X++;
n/=v[i];
}
p*=(X+1);
s=(s*(put(Y,X+1)-1)%mod*put(Y-1,mod-2))%mod;
}
}
if(n>1)
{
int X=1;
p*=2;
int Y=n;
s=(s*(put(Y,X+1)-1)%mod*put(Y-1,mod-2))%mod;
}
fprintf(g,"%d ",p);
fprintf(g,"%d\n",s);
}
fclose(g);
fclose(f);
return 0;
}