Pagini recente » Cod sursa (job #48905) | Cod sursa (job #2665905) | Cod sursa (job #2591542) | Cod sursa (job #484125) | Cod sursa (job #2587215)
#include <fstream>
#define MOD 9973
#define NMAX 100005
#define ull unsigned long long
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
ull v[NMAX], sumdiv, nrdiv, x, i, j, t, q, k, fm, val;
bool w[NMAX];
ull lgput(ull n, ull p)
{
ull r = 1;
while(p)
{
if(p % 2 == 1)
r = (r * n) % MOD;
n = (n * n) % MOD;
p /= 2;
}
return r;
}
int main()
{
for(i = 2; i <= NMAX; ++ i)
if(!w[i])
{
v[++ k] = i;
for(j = i * i; j <= NMAX; j = j + i)
w[j] = 1;
}
f >> t;
while(t --)
{
f >> x;
sumdiv = nrdiv = val = 1;
q = 1;
do
{
fm = 0;
while(x % v[q] == 0)
{
x /= v[q];
fm ++;
val *= v[q];
}
if(fm > 0)
{
nrdiv = nrdiv * (fm + 1);
val *= v[q];
sumdiv = (sumdiv * (val - 1) / (v[q] - 1) ) % MOD;
val = 1;
}
q++;
if(v[q] * v[q] > x && x > 1)
{
nrdiv = nrdiv * 2;
sumdiv = (sumdiv * (x * x - 1) / (x - 1)) % MOD;
x = 1;
}
}while(x > 1);
g << nrdiv << " " << sumdiv << "\n";
}
return 0;
}