Pagini recente » Cod sursa (job #3145704) | Cod sursa (job #821080) | Cod sursa (job #695834) | Cod sursa (job #54605) | Cod sursa (job #448882)
Cod sursa(job #448882)
#include<iostream.h>
#include<fstream.h>
int v[ 1002000 ];
int inv[ 10000 ];
void prim(long long n, int *primes, int &nr)
{ long long j=2,i ;
nr = 0;
while(j * j <= n)
{
if( v [ j ] != 1)
{
for(i = j;i * i <= n;i += j) v [ i ] = 1;
primes[ ++nr ] = j;
}
j++;
}
}
int main()
{
freopen("ssnd.in", "r", stdin);
freopen("ssnd.out", "w", stdout);
long long n;
int prime[100000];
int k, nr_prime, cazuri,p=1,s,q;
prim(100000000000ll, prime, nr_prime);
scanf("%d\n", &cazuri);
while( cazuri )
{
p = 1; q = 1;
scanf("%lld", &n);
for (int i = 1; i <= nr_prime && n > 1; i ++)
{
k =0;
while( n % prime[i] == 0)
{
n = n / prime[i];
k++;
}
p=p*(k+1);
s = 1;
for(int j=1;j<=k+1;j++)
s=(s*prime[i])%9973;
s= (s +9972) %9973 ;
q=(q*s) % 9973;
int m;
m = (prime[i] + 9972) %9973;
q=q/m %9973;
}
if( n > 1)
p=p*2;
printf("%d %d\n", p , q );
--cazuri;
}
return 0;
}