Pagini recente » Cod sursa (job #1371575) | Cod sursa (job #39536) | Cod sursa (job #2453708) | Cod sursa (job #2050896) | Cod sursa (job #1990332)
#include <bits/stdc++.h>
using namespace std;
bool frecv[1000001];
int cate, ciur[100000];
long long readInt ()
{
long long raspuns = 0;
char c;
while (true)
{
c = getchar();
if (c == EOF) return 100001;
if (c>='0' && c<='9')
{
raspuns = c-'0';
break;
}
}
while (true)
{
c = getchar();
if (c<'0' || c>'9') break;
raspuns = 10*raspuns + c-'0';
}
return raspuns;
}
int main()
{
freopen ("ssnd.in", "r", stdin);
freopen ("ssnd.out", "w", stdout);
frecv[1] = 1;
for (int i = 1; i<=1000; ++i)
if (!frecv[i])
{
for (int j = i*2; j<=1000000; j+=i)
frecv[j] = 1;
}
for (int i = 1; i<=1000000; ++i)
if (frecv[i] == 0)
ciur[cate++] = i;
int t;
t = readInt();
for (int i = 1; i<=t; ++i)
{
long long n;
n = readInt();
int div = 1;
int suma = 1;
for (int j = 0; j<cate && n>1; ++j)
{
int de_cate_ori = 0;
long long putere = ciur[j];
while (n%ciur[j] == 0)
{
++de_cate_ori;
n/=ciur[j];
putere = (putere * ciur[j]);
}
div*=(de_cate_ori+1);
suma=(1LL*suma*(putere-1)/(ciur[j]-1))%9973;
}
if (n == 1)
printf("%d %d\n", div, suma);
else printf("2 %d\n", (n+1)%9973);
}
}