Pagini recente » Cod sursa (job #1756064) | Cod sursa (job #1531279) | Monitorul de evaluare | Cod sursa (job #2013303) | Cod sursa (job #1245087)
#include<fstream>
#include<cstdio>
using namespace std;
long long n,p1,p2,i,a,fa,e,p,j,M;
bool v[1000010];
int main()
{
freopen("ssnd.in","r",stdin);
ofstream g ("ssnd.out");
scanf("%lld",&n);
p=1;p2=1;
M=1000000;
for(i=2; i<=M; i++)
v[i]=true;
for(i=2; i<=M; i++)
if(v[i])
{
j=i*2;
while(j<=M)
{
v[j]=false;
j+=i;
}
}
for(i=1; i<=n; i++)
{
scanf("%lld",&a);
if(v[a])g<<2<<" "<<a+1<<'\n';
else {
p1=1;
p2=1;
p=1;
fa=2;
while(a>1&&fa*fa<=a){
e=0;
while(a%fa==0){a/=fa;e++;}
if(e){p=p*(e+1);
for(j=1;j<=e+1;j++)
p2=p2*fa;
p2--;
p1=p2/(fa-1);}
fa++;}
g<<p<<" "<<p1<<'\n';}}
return 0;}