Pagini recente » Cod sursa (job #2971131) | Cod sursa (job #1130698) | Cod sursa (job #942766) | Cod sursa (job #1544007) | Cod sursa (job #2837852)
#include <bits/stdc++.h>
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
typedef long long ll;
const ll lim=1e6+4;
const ll mod=9973;
vector<ll> primes;
bool ok[lim];
ll tst,n;
ll put(ll a,ll b)
{
ll ans=1;
while(b)
{
if(b&1) ans=(ans*a)%mod;
a=(a*a)%mod;
b>>=1;
}
return ans;
}
int main()
{
for(ll i=2;i<lim;++i)
if(!ok[i])
{
primes.push_back(i);
for(ll j=2*i;j<lim;j+=i)
ok[j]=true;
}
in>>tst;
while(tst--)
{
in>>n;
ll number=1,sum=1;
for(ll i=0;i<primes.size() and primes[i]*primes[i]<=n;++i)
if(n%primes[i]==0)
{
ll power=1,expo=0;
while(n%primes[i]==0)
power*=primes[i],
n/=primes[i],
++expo;
power*=primes[i];
power=(power-1)%mod;
number*=(expo+1);
sum=(((sum*power)%mod)*put(primes[i]-1,mod-2))%mod;
}
if(n>1) number*=2,
sum=(sum*(n+1))%mod;
out<<number<<' '<<sum<<'\n';
}
return 0;
}