Pagini recente » Cod sursa (job #775016) | Cod sursa (job #1897193) | Cod sursa (job #3139551) | Cod sursa (job #2156955) | Cod sursa (job #963682)
Cod sursa(job #963682)
#include <fstream>
#define N 1000000
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int T,t,k,Prim[80000];
char viz[N+10];
void GenereazaNumerePrime()
{
for(int i=2;i<=N;i++)
if(viz[i]==0)
{
Prim[++k]=i;
for(int j=2*i;j<=N;j+=i)viz[j]=1;
}
}
void solve()
{
unsigned long long n;
f>>n;
unsigned long long Nr=1,S=1;
int i=1;
while(n!=1)
{
while(n % Prim[i]!=0)i++;
int alfa=0,p=Prim[i];
unsigned long long Putere=1;
while(n % p==0)
{
n/=p,alfa++;
Putere*=p;
}
Nr*=(alfa+1);
S*=(Putere*p-1)/(p-1);
}
g<<Nr<<" "<<S<<'\n';
}
int main()
{
GenereazaNumerePrime();
f>>T;
for(int i=1;i<=T;i++)solve();
f.close();g.close();
return 0;
}