Pagini recente » Borderou de evaluare (job #2657855) | Cod sursa (job #3325548) | Cod sursa (job #354958) | Cod sursa (job #2435488) | Cod sursa (job #3314906)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long int v[2000001],v2[2000001];
void ciur(){
int k=1;
int i,j;
for(i=2; i*i<=1000001; i++){
if(v[i]==0){
for(j=i; j*i<=1000001; j++){
v[i*j]=1;
} }
}
// i=1;
// for(k=1; k<=1000001; k++){
// if(v[k]==0){
// v2[i]=k;
// i++;
// }
// }
}
int main()
{
int n;
fin>>n;
int i;
int j;
int nr,cnt;
int nrdiv=1;
int sum;
int cnt2;
int factor1,factor2;
ciur();
for(i=1; i<=n; i++){
fin>>nr;
j=2;
nrdiv=1;
sum=1;
if(v[nr]==0){
fout<<2<<" "<<nr+1<<endl;
continue;
}
for(j=2; j<=nr; j++){
cnt=0;
if(nr%j==0){
while(nr%j==0){
nr=nr/j;
cnt++;
cnt2=cnt;
}
cnt2=cnt;
cnt++;
nrdiv=nrdiv*cnt;
factor1=pow(j,cnt2+1)-1;
factor2=factor1/(j-1);
sum=sum*factor2;
}
}
fout<<nrdiv<<" "<<sum<<endl;
}
return 0;
}