Pagini recente » Istoria paginii runda/rar44/clasament | Istoria paginii runda/pentru_furnicik | Cod sursa (job #1168917) | Istoria paginii runda/gagaga/clasament | Cod sursa (job #1736642)
#include <cstdlib>
#include <fstream>
#include <bitset>
#include <iostream>
using namespace std;
#define mod 9973
const int MAX = 1000005;
int k, P[MAX];
bitset <MAX> viz;
long long n,sum,term, prim,sd,nd;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
void ciur() {
for(int i = 2; i < MAX; i++)
if(viz[i] == 0) {
P[++k] = i;
for(int j = 2*i; j < MAX; j = j+i) viz[j] = 1;
}
}
int main() {
int t,cnt=0,i;
ciur();
fin>>t;
for(; t; t--)
{
fin>>n;
sd = nd = 1;
for(i = 1; i <= k && P[i]*P[i] <= n; i++)
{
if(n % P[i] == 0)
{
sum = cnt = term = 1;
prim = P[i] % mod;
while(n % P[i] == 0)
{
cnt++;
term = (term * prim) % mod;
sum = (sum + term) % mod;
n /= P[i];
}
sd = (sum * sd) % mod;
nd *= cnt;
}
}
if(n > 1)
{
sd = (sd * (n + 1)) % mod;
nd *= 2;
}
fout<<nd<<" "<<sd<<'\n';
}
return 0;
}