Pagini recente » Cod sursa (job #3169155) | Cod sursa (job #1506117) | Rating Bochis Andrei (ONLYGODY) | Cod sursa (job #793481) | Cod sursa (job #1193502)
#include<fstream>
#include<math.h>
using namespace std;
const long MAX=1000001;
bool prim[MAX];
long long divprim[MAX],nrdivprim;
void eratostene(){
nrdivprim=0;
for(long i=2;i<MAX;i++){
if(prim[i]==0){
nrdivprim++;
divprim[nrdivprim]=i;
for(long j=i*2;j<MAX;j+=i)
prim[j]=1;
}
}
}
int main(){
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int n,nr;
fin>>n;
eratostene();
long long x,sum,div,d;
while(fin>>x){
nr=1; //nr de div
sum=1;//suma div
long long cx=x;
for(long i=1;divprim[i]*divprim[i]<=cx;i++){
long long div=divprim[i] ;
d=0;
while(x%div==0){
d++;
x/=div;
}
if(d>0){
nr*=(d+1);
sum=sum*(((long long)pow(div,d+1)-1)/(div-1))%9973;
}
if(x==1)
break;
}
if(x>1){
nr*=2;
sum=sum*((long long)pow(x,2)-1)%9973;
}
fout<<nr<<" "<<sum<<"\n";
}
return 0;
}