Pagini recente » Cod sursa (job #155923) | Cod sursa (job #2098220) | Cod sursa (job #927495) | Cod sursa (job #253291) | Cod sursa (job #2119621)
#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 n,int m)
{
if(m==1) return n%9973;
if(m%2==0) return (exp(n,m/2)%9973)*(exp(n,m/2)%9973);
if(m%2==1) return ((exp(n,m/2)%9973)*(exp(n,m/2)%9973)*n)%9973;
}
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(1000);
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))/( pr[i]-1);
ns*=d1;
}
}
if(n>1)
{nd*=2;
ns = (1LL*ns*(n+1) % mod);
}
g<<nd<<" "<<ns<<'\n';
}
return 0;
}