Pagini recente » Cod sursa (job #36060) | Cod sursa (job #822885) | Cod sursa (job #3250029) | Cod sursa (job #2143554) | Cod sursa (job #1465917)
#include <fstream>
#include <cstdio>
#define NMAX 1000005
#define MOD 9973
using namespace std;
long long n , aux , sol1 , sol2 ;
int p[NMAX] , t , nr , k , nrd ;
bool c[NMAX];
void ciur()
{
c[1] = 1;
for(int i = 2 ; i * i <= NMAX ; ++i){
if(c[i] == 0){
for(int j = i * i ; j <= NMAX ; j += i){
c[j] = 1 ;
}
}
}
for(int i = 1 ; i <= NMAX ; ++i){
if(c[i] == 0){
p[++nrd] = i ;
}
}
}
int main()
{
freopen("ssnd.in" , "r" , stdin) ;
freopen("ssnd.out" , "w" , stdout) ;
scanf("%d" , &t) ;
ciur();
for(int i = 1 ; i <= t ; ++i){
scanf("%d" , &n) ;//f >> n ;
k = 1 ;
sol1 = 1 ;
sol2 = 1 ;
while(p[k] * p[k] <= n && k <= nrd){
nr = 0 ;
aux = 1 ;
while(n % p[k] == 0){
n /= p[k] ;
++nr ;
aux *= p[k] ;
}
aux *= p[k] ;
sol1 = (sol1 * (nr + 1)) % MOD ;
sol2 = (sol2 * (aux - 1) / (p[k] - 1)) % MOD ;
++k ;
}
if(n != 1){
sol1 *= 2 ;
sol2 = (sol2 * (n +1 )) % MOD ;
}
printf("%lld %lld\n" , sol1 , sol2) ;//g << sol1 << " " << sol2 << '\n' ;
}
return 0;
}