Pagini recente » Cod sursa (job #623227) | Cod sursa (job #765379) | Cod sursa (job #3248610) | Cod sursa (job #1965688) | Cod sursa (job #646164)
Cod sursa(job #646164)
#include <fstream>
#include <bitset>
using namespace std;
int prim[664579];
void init()
{
bitset<10000001> ciur;
int i, j;
int count;
ciur.reset();
for (i = 2; i < 5000000; ++i)
{
for (j = i+i; j < 10000001; j += i)
{
ciur.set(j);
}
}
count = 0;
for (i = 2; i < 10000001; ++i)
{
if (0 == ciur[i])
{
prim[count] = i;
++count;
}
}
}
int main()
{
ifstream fin("ssnd.in", istream::in);
ofstream fout("ssnd.out");
int t;
int n;
int i;
int p;
int nrdiv;
int d;
int sum;
long long power;
int ipow;
init();
fin >> t;
while (0 < t)
{
fin >> n;
p = 0;
nrdiv = 1;
sum = 1;
while (1 < n)
{
d = 0;
while (0 == n % prim[p])
{
n /= prim[p];
++d;
}
nrdiv *= d+1;
power = 1;
for (ipow = 1; ipow <= d+1; ++ipow)
{
power *= prim[p];
}
sum *= ((power - 1) / (prim[p]-1)) % 9973;
++p;
}
fout << nrdiv << " " << sum << "\n";
--t;
}
return 0;
}