Pagini recente » Cod sursa (job #1755100) | Rating Natsu Dragneel (fairy-tail) | Cod sursa (job #3002344) | Cod sursa (job #815906) | Cod sursa (job #1386070)
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int64_t n, t, S, N, prim[100001],m=1, nr=1, sum=1;
bool a[1000001];
int64_t sqr(int y){return y*y;}
void ciur()
{
for(int i=3;i*i<=1000000;i++)
for(int j=i*i;j<=1000000;j=j+2*i)
a[j]=true;
prim[1]=2;
for(int i=3;i<=1000000;i+=2)
if(!a[i]) m++,prim[m]=i;
}
int64_t lgput(int64_t x, int64_t a)
{
if(a==1) return x;
if(!(a%2)) return sqr(lgput(x,a/2));
else return x*lgput(x,a-1);
}
int main()
{
f>>t;
ciur();
for(int i=1;i<=t;i++)
{
f>>n; int index=n; int pt=0; nr=sum=1;
while (n!=1)
{
while (!(n%prim[index]))
{
pt++; n/=prim[index];
}
if(pt) nr*=(pt+1), sum*=(lgput(prim[index],pt+1)-1)/(prim[index]-1);
pt=0; index--;
}
g<<nr<<' '<<sum<<'\n';
}
return 0;
}