Pagini recente » Cod sursa (job #1919750) | Cod sursa (job #1725465) | Cod sursa (job #2945565) | Cod sursa (job #1982195) | Cod sursa (job #2631994)
#include <iostream>
#include <fstream>
using namespace std;
long long p[1000001],exp[1000001];
ifstream in("ssnd.in");
ofstream out("ssnd.out");
int main()
{
int a,b;
in>>a;
for(b=1;b<=a;b++)
{
long long n,c,d,i,nd=1,sd=1;
for(i=1;i<1000001;i++)
{
p[i]=0;
exp[i]=0;
}
in>>n;
c=n;
d=2;
while(c%d==0)
{
p[1]=d;
c/=d;
exp[1]++;
}
if(p[1]==d)
i=2;
else
i=1;
d=3;
while(c>1)
{
while(c%d==0)
{
p[i]=d;
c/=d;
exp[i]++;
}
if(p[i]==d)
i++;
d+=2;
}
for(c=1;c<i;c++)
nd*=exp[c]+1;
for(c=1;c<i;c++)
{
int t=1,j;
for(j=1;j<=exp[c]+1;j++)
t*=p[c];
sd*=(t-1)/(p[c]-1);
}
out<<nd<<" "<<sd<<endl;
}
return 0;
}