Pagini recente » Cod sursa (job #3225074) | Cod sursa (job #2826164) | Cod sursa (job #2631952) | Cod sursa (job #2414913) | Cod sursa (job #1193498)
#include<fstream>
using namespace std;
const long MAX=1000001;
int 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;
}
}
}
long long power(long long x, long long n){
if(n==1)
return x;
long long p=power(x,n/2);
if(n%2==0){
return p*p;
}
else
return p*p*x;
}
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
for(long i=1;i<=nrdivprim;i++){
long long div=divprim[i] ;
d=0;
while(x%div==0){
d++;
x/=div;
}
if(d>0){
nr*=(d+1);
sum=sum*((power(div,d+1)-1)/(div-1))%9973;
}
if(x==1)
break;
}
fout<<nr<<" "<<sum<<"\n";
}
return 0;
}