Pagini recente » Cod sursa (job #41316) | Borderou de evaluare (job #465236) | Cod sursa (job #2070732) | Diferente pentru utilizator/lucametehau intre reviziile 9 si 8 | Cod sursa (job #2127556)
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
unsigned long long n,i,x,j,expo,iexp,k,nrd,sumad,prime[1001];
bool v[1000000];
void fprim(){
for(i=1; i<=1000000; i++)
v[i]=1;
for(i=2; i<=1000; i++)
if(v[i]==1){
for(j=i; j<=1000000/i; j++)
v[i*j]=0;
prime[++k]=i;
}
}
int main()
{
fprim();
cin>>n;
for(j=1; j<=n; j++){
sumad=1;
nrd=1;
i=2;
k=1;
cin>>x;
while(x>1){
iexp=1;
expo=0;
if(i>sqrt(x))
i=x;
while(x%i==0){
x=x/i;
expo++;
iexp=iexp*i;
if(x%i!=0){
iexp=iexp*i;
expo++;
}
}
if(expo!=0)
nrd=nrd*expo;
if(iexp!=1)
sumad=sumad*(iexp-1)/(i-1);
i=prime[++k];
}
cout<<nrd<<" "<<sumad%9973<<"\n";
}
return 0;
}