Pagini recente » Cod sursa (job #3155166) | Cod sursa (job #2915575) | Cod sursa (job #614005) | Cod sursa (job #1375985) | Cod sursa (job #2037915)
#include <stdio.h>
#include <stdlib.h>
#define SqrtMax 100003
#define mod 9973
#define ll long long
ll t,nr;
ll p[SqrtMax],v[SqrtMax];
ll lgPow(ll x, ll p){
ll r = 1;
while(p >= 1){
if(p % 2 == 1){
p--;
r *= x;
r %= mod;
}
x *= x;
x %= mod;
p /= 2;
}
// prllf("%ld\n",r);
return r % mod;
}
ll main()
{
for(ll i = 2; i <= SqrtMax - 2; ++i){
if(p[i] == 0){
v[++nr] = i;
for(ll j = i + i; j <= SqrtMax - 2; j += i){
p[j] = 1;
}
}
}
ll n;
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%lld",&t);
while(t--){
scanf("%lld",&n);
ll e = 0, sum = 0, retin = n,ans1 = 1, ans2 = 1;
for(ll i = 1; i <= nr && v[i] * v[i] <= n; ++i){
if(!(n % v[i])){
ll putere = 0;
while(!(n % v[i])){
n /= v[i];
putere++;
}
ans1 *= (putere + 1); ans1 %= mod;
ans2 *= (lgPow(v[i],putere + 1) - 1);
ans2 *= (lgPow(v[i] - 1, mod - 2)); ans2 %= mod;
// prllf("%lld %lld %lld %lld\n",v[i],putere,ans1,ans2);
}
}
if(n > 1){
ans1 *= 2; ans1 %= mod;
ans2 *= (n + 1); ans2 %= mod;
}
printf("%lld %lld\n",ans1,ans2);
}
return 0;
}