Pagini recente » Cod sursa (job #2631986) | Cod sursa (job #1725686) | Cod sursa (job #1739150) | Cod sursa (job #1413652) | Cod sursa (job #1374548)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int a[80000];
int long long o=0, n, m, i, q, ok, l, k1, k2, v1, v2, u;
bool v[1000003];
void gen_ciur(int long long &o)
{
int i, k;
for(i=2; i<=1000003; i++)
{
if(v[i]==false)
{
v[i]=true;
a[++o]=i;
k=i+i;
while(k<1000000)
{
v[k]=true;
k=k+i;
}
}
}
}
int main()
{
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
fin>>n;
gen_ciur(o);
for(i=1; i<=n; i++)
{
fin>>m;
q=1;
ok=sqrt(m);
k1=1;
k2=1;
u=0;
while(a[q]<=ok)
{
if(m%a[q]==0)
{l=0;
v1=1;
while(m%a[q]==0) {m/=a[q]; l++;}
k1*=(l+1);
while(l+1)
{
v1*=(a[q]);
l--;
}
v1--;
v2=(a[q]-1);
v1=v1/v2;
k2*=v1;
u=1;
}
q++;
}
if(u==0)
{
k1=2;
v1=m*m;
v1--;
v2=m-1;
v1=v1/v2;
k2=v1;
}
fout<<k1<<" "<<k2<<"\n";
}
return 0;
}