Pagini recente » Cod sursa (job #2532868) | Cod sursa (job #83064) | Cod sursa (job #3222509) | Cod sursa (job #183966) | Cod sursa (job #1557974)
#include<stdio.h>
using namespace std;
char ciur[1000001];
int main(){
int prim,i,n,p;
long long a,sumdiv,nrdiv,prod;
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d",&n);
prim=2;
while(prim*prim<=1000000){
for(i=2;i<=1000000/prim;i++)
ciur[prim*i]=1;
prim++;
while(ciur[prim]==1)
prim++;
}
ciur[1]=1;
for(i=1;i<=n;i++){
scanf("%lld",&a);
prim=2;
nrdiv=1;
sumdiv=1;
while(prim*prim<=a){
p=0;
prod=1;
while(a%prim==0){
a=a/prim;
p++;
prod=prod*prim;
}
nrdiv=nrdiv*(p+1);
sumdiv=sumdiv*(prod*prim-1)/(prim-1);
prim++;
while(ciur[prim]==1)
prim++;
}
if(ciur[a]==0){
nrdiv=nrdiv*2;
sumdiv=sumdiv*(a*a-1)/(a-1);
}
printf("%lld %lld\n",nrdiv,sumdiv);
}
return 0;
}