Pagini recente » Cod sursa (job #2510421) | Cod sursa (job #1745774) | Cod sursa (job #2695336) | Cod sursa (job #3185181) | Cod sursa (job #1624516)
#include <fstream>
#include <bitset>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
const int N=1000000;
bitset <N> v;
int p[79500];
const int mod=9973;
inline int putere(int a,int p)
{
int result=1;
while(p)
{
if(p&1) result=(1LL*result*a)%mod;
a=(1LL*a*a)%mod;
p>>=1;
}
return result;
}
inline void ciur()
{
int i,j;
p[++p[0]]=2;
for(i=3;i*i<=N;i+=2)
{ if(!v[i])
for(j=i*i;j<=N;j+=i) v[j]=1;
}
for(i=3;i<N;i+=2) if(!v[i]) p[++p[0]]=i;
}
int main()
{
int t,i,j,q,nr,a,b;
int sum;
long long n;
ciur();
fin>>t;
for(i=0;i<t;i++)
{
sum=1;
nr=1;
fin>>n;
for(j=1;1LL*p[j]*p[j]<=n&&j<=p[0];j++)
{ q=0;
while(n%p[j]==0) {q++;n/=p[j];}
if(q>0)
{
nr*=(q+1);
a=(putere(p[j],q+1)-1)%mod;
b=putere(p[j]-1,mod-2)%mod;
sum=(((sum * a) % mod) * b) % mod;
}
}
if(n>1) { nr *= 2;
sum = (1LL*sum*(n+1) % mod);}
fout<<nr<<" "<<sum<<"\n";
}
}