Pagini recente » Cod sursa (job #214077) | Cod sursa (job #2528089) | Cod sursa (job #1176521) | Cod sursa (job #1074865) | Cod sursa (job #880834)
Cod sursa(job #880834)
#include <iostream>
#include <fstream>
#include <math.h>
# define mod 9973;
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
int j,i,t,aux,k,a,nr,primi[1000010],p,p1,p2,h;
long long s,sol,q,l,n,y;
bool v[1000010];
void ciur()
{primi[1]=2;a=2;
for(i=2;i<=1000005;++i)
if(v[i]==0)
{
primi[a]=i;
a++;
for(j=i+i;j<=1000005;j=j+i)
v[j]=1;
}
}
int pow(int x,int p)
{
int rez = 1;
x %= mod;
for(; p; p >>= 1) {
if(p & 1) {
rez *= x;
rez %= mod;
}
x *= x;
x %= mod;
}
return rez;
}
int main()
{
ciur();
in>>t;
while(t)
{
s=1;nr=1;
in>>n;
for(i=1;n>=1LL*primi[i]*primi[i]&& i<=a;i++)
{
if(n%primi[i]==0)
{
p=0;
while(n%primi[i]==0)
{
n=n/primi[i];
p++;
}
nr=nr*(p+1);
h=9971;
p1=(pow(primi[i],p+1)-1)%mod;
p2=pow(primi[i]-1,h) % mod;
s=(s*p1)%mod;
s=(s*p2)%mod;
}
}
if(n>1)
{
nr*=2;
s=s*(n+1)%mod;
}
out<<nr<<" "<<s<<'\n';
t--;
}
in.close();
out.close();
return 0;
}