Pagini recente » Cod sursa (job #1763915) | Cod sursa (job #985976) | Cod sursa (job #2827909) | Cod sursa (job #3155768) | Cod sursa (job #2631998)
#include <iostream>
#include <fstream>
using namespace std;
unsigned long long p[100005],exp[100005];
ifstream in("ssnd.in");
ofstream out("ssnd.out");
int main()
{
int a,b;
in>>a;
for(b=1;b<=a;b++)
{
unsigned long long n,c,d,i,nd=1,sd=1;
for(i=1;i<100001;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++)
{
unsigned long long 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;
}