Pagini recente » Cod sursa (job #2911462) | Cod sursa (job #1654867) | Cod sursa (job #3174124) | Cod sursa (job #2641454) | Cod sursa (job #2431706)
#include<bits/stdc++.h>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int64_t n,pr[90000],p,q,sd;
int t,k,e,nd;
bitset<1000010> used;
void ciur()
{
pr[++k]=2;
int i;
for(i=3; i<=1000; i+=2)
if(!used[i])
{
pr[++k]=i;
for(int j=i*i;j<=1000000;j+=2*i)
used[j]=1;
}
for(; i<=1000000; i+=2)
if(!used[i])
pr[++k]=i;
}
int main()
{
ciur();
f>>t;
for(;t;t--)
{
f>>n;
nd=1;sd=1;
for(int i=1;i<=k;i++)
{
if(1LL*pr[i]*pr[i]>n)
break;
if(n%pr[i])continue;
e=1;p=1;q=1;
while(n%pr[i]==0)
{
e++;
p*=pr[i];
q+=p;
n/=pr[i];
}
nd*=e;
sd*=q;
}
if(n>1)
{
nd*=2;
sd*=n+1;
}
g<<nd<<' '<<sd<<'\n';
}
return 0;
}