Pagini recente » Cod sursa (job #2283264) | Cod sursa (job #628732) | Cod sursa (job #1504611) | Istoria paginii runda/minune2 | Cod sursa (job #1354310)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
//bool v[2000001];
const int Mod=9973;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
bool prim(long long unsigned x)
{
if(x==0 || x==1) return 0;
for(int i=2;i*i<=x;i++) if(x%i==0) return 0;
return 1;
}
long long unsigned poww(long long unsigned a, long long unsigned n)
{
long long unsigned p=1;
while(n)
{
if(n%2) p*=a;
n/=2;
a*=a;
}
return p;
}
int main()
{
long long unsigned i,j,n,x,s,k,baza,exp;
/*v[0]=0; v[1]=0;
for(i=2;i<=2000000;i++) v[i]=1;
for(i=2;i*i<=2000000;i++) if(v[i])
for(j=i*i;j<=2000000;j+=i) v[j]=0;*/
in>>n;
for(i=1;i<=n;i++)
{
in>>x;
baza=2;
s=1;
k=1;
while(baza*baza<=x)
{
if(x%baza==0)
{
exp=0;
while(x%baza==0)
{
exp++;
x/=baza;
}
s=s*(poww(baza,exp+1)-1)/(baza-1);
if(s>Mod) s%=Mod;
k*=(exp+1);
}
baza++;
}
if(x!=1)
{
s*=(x+1);
if(s>Mod) s%=Mod;
k*=2;
}
out<<k<<" "<<s<<"\n";
}
return 0;
}