Pagini recente » Cod sursa (job #2633824) | Cod sursa (job #2007903) | Cod sursa (job #1687511) | Cod sursa (job #1482508) | Cod sursa (job #2047782)
#include <fstream>
#include <iostream>
#include <math.h>
#include <vector>
using namespace std;
const int mod = 9973;
const int maxn = 1000000;
unsigned long long n;
int t;
bool prime[maxn];
vector < int > v;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int main(){
for(int i = 2; i < maxn; ++i){
if(!prime[i]){
v.push_back(i);
for(int j = 2 * i; j < maxn; j += i) prime[j] = 1;
}
}
f >> t;
while(t){
--t; int div = 1, p = 1;
f >> n;
for(int i = 0; v[i] * v[i] <= n; ++i){
int k = v[i], power = 0, sum = 1;
if(n % k == 0){
while(n % k == 0){
n /= k;
power++;
}
div *= (power + 1);
for(int l = 1; l <= power; ++l){
int a = k, sol = 1;
for(int j = 0; (1<<j) <= l; ++j){
if((1<<j) & l) sol = ((sol % mod) * (a % mod)) % mod;
a = ((a % mod) * (a % mod)) % mod;
}
sum = ((sum % mod) + (sol % mod)) % mod;
}
p = ((p % mod) * (sum % mod)) % mod;
}
}
if(n > 1){
n += 1;
div = (div * 2) % mod;
p = ((p % mod) * (n % mod)) % mod;
}
g << div << ' ' << p << '\n';
}
}