Pagini recente » Cod sursa (job #377584) | Cod sursa (job #1763079) | Monitorul de evaluare | Cod sursa (job #1424897) | Cod sursa (job #1970131)
#include<bits/stdc++.h>
#define MOD 9973
#define MaxN 1000005
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
vector <int> Primes;
bitset<MaxN> isPrime;
inline void computePrimes()
{
Primes.push_back(2);
for(int i=3; i<=1000; i=i+2)
if(isPrime[i]==0)
for(int j=i*i; j<=MaxN; j=j+i)
isPrime[j]=1;
for(int i=3; i<=MaxN; i=i+2)
if(isPrime[i]==0)
Primes.push_back(i);
}
inline void Query(long long N)
{
int t,nr,e,sum;
sum=nr=1;
for(auto it:Primes)
if(N%it==0)
{
e=1,t=it;
while(N%it==0) t*=it,N/=it,++e;
nr*=e,sum*=((t-1)/(it-1))%MOD;
}
if(N!=1)
nr*=2,sum*=(N*N-1)/(N-1)%MOD;
g<<nr<<' '<<sum%MOD<<'\n';
}
inline void solve()
{
long long T,N;
f>>T;
while(T--)
{
f>>N;
Query(N);
}
}
int main()
{
computePrimes();
solve();
}