Pagini recente » Cod sursa (job #1754111) | Cod sursa (job #338672) | Cod sursa (job #2259602) | Cod sursa (job #422195) | Cod sursa (job #2184292)
#include <iostream>
#include <fstream>
#define M 9973
using namespace std;
bool a[100010];
void ciur()
{
while (q)
{
q=0;
for (int i=p+1; i<=n; i++)
{
if (!a[i])
{
p=i;
q=1;
break;
}
}
for (int i=2*p; i<=n; i+=p)
a[i]=1;
}
}
void euclid(long long a, long long b, long long &x, long long &y)
{
if (!b)
{
x=1;
y=0;
return;
}
euclid(b, a%b, x, y);
long long aux;
aux=y;
y=x-(a/b)*y;
x=aux;
}
int main()
{
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long n, s, p, pr, x, y;
int t, d, nr;
fin >> t;
for (int i=1; i<=t; i++)
{
fin >> n;
d=2;
s=1;
p=1;
while(n>1)
{
if (d*d>n)
break;
if (a[d])
{
nr=0;
pr=1;
while(n%d==0)
nr++,n/=d,pr*=d;
pr*=d;
pr--;
if (nr)
{
s=s*(nr+1);
p=((p%M)*(pr%M))%M;
euclid(d-1, M, x, y);
while(x<0)
x+=M;
p=((p%M)*(x%M))%M;
}
}
d++;
}
fout << s << " " << p << "\n";
}
return 0;
}