Pagini recente » Cod sursa (job #536622) | Cod sursa (job #1250947) | Cod sursa (job #1019110) | Cod sursa (job #1141259) | Cod sursa (job #2148561)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
const int mod = 9973;
const int maxn = 1000005;
int t,k;
long long prod,nr;
int ciur[maxn],prim[maxn];
void prime()
{
int i,j;
for(i=2;i<maxn;i++)
if(!ciur[i])
{
prim[++k] = i;
for(j=i+i;j<maxn;j+=i)
ciur[j] = 1;}
}
int putere(int x, int y)
{
int i,a;
a = x % mod;
int r = 1;
for(i = 0; (1<<i) <= y; i++)
{
if( y & (1<<i) )
r = (r*a) % mod;
a = (a*a) % mod;
}
return r;
}
int main()
{
f>>t;
int i,n,x;
int d,p;
prime();
while(t--)
{
f>>n;
prod = 1;
nr = 1;
for(i=1;i<=k && prim[i]*prim[i] <= n ; i++)
{
if(n % prim[i] == 0 )
{
p = 0;
while( n % prim[i] == 0)
{
++p;
n /= prim[i];
}
nr *= (p+1);
int q = ((putere(prim[i],p+1)-1)/(prim[i]-1))%mod;
prod *= q;
}
}
if(n>1)
{
nr *= 2;
prod = prod*(n+1)%mod;
}
g<<nr<< " "<<prod << "\n";
}
}