Pagini recente » Cod sursa (job #2693831) | Cod sursa (job #1189837) | Cod sursa (job #2933591) | Cod sursa (job #1774013) | Cod sursa (job #2248247)
#include <iostream>
#include <fstream>
#include <vector>
#define MOD 9973
#define NM 1000005
using namespace std;
ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");
inline void ciur();
inline void solve(int x);
int suma_partiala_functie(int f, int p);
vector<int> v;
bool c[NM];
int T, i, j;
unsigned long long x;
int main()
{
fin >> T;
ciur();
for(;T--;)
{
fin >> x;
solve(x);
}
return 0;
}
inline void solve(int x)
{
int k=0, p, nrdiv=1, sumadiv=1;
while(v[k]*v[k]<=x)
{
p=0;
while(x%v[k]==0)
{
p++;
x/=v[k];
}
nrdiv*=(p+1);
sumadiv*=suma_partiala_functie(v[k], p);
sumadiv=sumadiv%MOD;
k++;
}
if(x > 1)
{
nrdiv*=2;
sumadiv*=(1+x);
sumadiv=sumadiv%MOD;
}
fout << nrdiv << ' ' << sumadiv << '\n';
}
int suma_partiala_functie(int f, int p)
{
int s = 1, fact=1;
for(i=1; i<=p; i++)
{
fact*=f;
s+=fact;
}
return s;
}
inline void ciur()
{
c[0]=c[1]=1;
for(i=2; i*i<=NM; i++)
if(c[i] == 0)
for(j=i; i*j<=NM; j++)
c[i*j] = 1;
for(i=2; i<=NM-1; i++)
if(c[i] == 0)
v.push_back(i);
}