Pagini recente » Cod sursa (job #449135) | Cod sursa (job #796097) | Cod sursa (job #2498134) | Cod sursa (job #528602) | Cod sursa (job #1398689)
#include<fstream>
#define DIM (1<<20)
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long m=9973;
long long putere(long long x,int p){
long long r=1;
while(p!=0){
if(p%2==1){
r=x%m*r%m;
}
x=x%m*x%m;
p/=2;
}
return r%m;
}
char w[DIM+10];
long long n,x,v[100000],e,nr,i,k,t,j,sum,a,b,b1;
pair<int,int> d[100000];
int main(){
for(i=2;i<=DIM;i++){
if(w[i]==0){
v[++k]=i;
for(j=i+i;j<=DIM;j+=i){
w[j]=1;
}
}
}
for(fin>>t;t!=0;t--){
fin>>n;
//numar divizori
x=n;
nr=1;
k=0;
for(i=1;v[i]*v[i]<=n && x!=1;i++){
e=0;
while(x%v[i]==0){
e++;
x/=v[i];
}
if(e!=0){
d[++k].first=v[i];
d[k].second=e;
nr*=(e+1);
}
}
if(x!=1){
d[++k].first=x;
d[k].second=1;
nr*=2;
}
fout<<nr<<" ";
//
//suma divizori
sum=1;
for(i=1;i<=k;i++){
a=putere(d[i].first,d[i].second+1)-1;
b=d[i].first-1;
b1=putere(b,m-2);
sum=(sum%m)*(a%m*b1%m)%m;
}
fout<<sum<<"\n";
//
}
return 0;
}