Pagini recente » Cod sursa (job #783550) | Cod sursa (job #987990) | Cod sursa (job #2016628) | Cod sursa (job #2847079) | Cod sursa (job #3206340)
//#pragma GCC optimize("Ofast,inline,unroll-loops")
#include <bits/stdc++.h>
#define mod 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
typedef long long ll;
void euclid(ll a, ll b, ll &x, ll &y){
if(!b){
x = 1;
y = 0;
return;
}
ll x0, y0;
euclid(b, a % b, x0, y0);
x = y0;
y = x0 - (a / b) * y0;
}
ll invmod(ll n){
ll x,y;
euclid(n,mod,x,y);
return (x % mod + mod) % mod;
}
bitset <1000005> c;
vector <int> prime;
void ciur(int n){
int i,j;
c[0] = c[1] = 1;
for(i = 4; i <= n; i += 2) c[i] = 1;
for(i = 3; i * i <= n; i += 2){
if(!c[i]){
for(j = i * i; j <= n; j += 2 * i) c[j] = 1;
}
}
for(i = 1; i <= n; i++){
if(!c[i]) prime.push_back(i);
}
}
int main()
{
int t,k;
long long n,d,s,nr;
fin >> t;
ciur(1e6);
while(t--){
k = 0;
nr = s = 1LL;
fin >> n;
d = 2;
while(n > 1){
int p = 0;
long long e = d;
while(n % d == 0){
p++;
n /= d;
e = (e * d) % mod;
}
if(p){
nr = (nr * (p + 1)) % mod;
s = (s * (e + mod - 1) * invmod(d - 1)) % mod;
}
if(d * d >= n) d = n;
else d = prime[++k];
}
fout << nr << " " << s << "\n";
}
return 0;
}