Pagini recente » Cod sursa (job #479577) | Cod sursa (job #2046824) | Cod sursa (job #211716) | Cod sursa (job #1086927) | Cod sursa (job #2174737)
#include <bits/stdc++.h>
#define mod 9973
using namespace std;
typedef long long ll;
bool p[1000005];
int pr[1000001];
int k;
int exp(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;
}
void prim(ll n)
{
p[1]=1;
for(int i=2; i<=n; i+=1)
{
if(p[i]==0)
{
pr[++k]=i;
for(int j=2; j*i<=n; ++j)
p[i*j]=1;
}
}
}
int main()
{
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int t,n;
prim(1000001);
int d,nd=1,ns=1,rep,d1,d2;
f>>t;
for(int i=1; i<=t; ++i)
{
f>>n;
nd=1;
ns=1;
for(int i=1; i<=k && 1LL * pr[i]* pr[i] <=n;++i)
{
if(n%pr[i]==0)
{ rep=0;
while (n%pr[i]==0)
{
n/=pr[i];
rep++;
}
nd*=(rep+1);
d1=((exp(pr[i],rep+1)-1)) ;
d2=exp(pr[i]-1,mod-2);
ns=(((ns*d1)%mod)*d2)%mod;
}
}
if(n>1)
{nd*=2;
ns = (1LL*ns*(n+1) % mod);
}
g<<nd<<" "<<ns<<'\n';
}
return 0;
}