Pagini recente » Cod sursa (job #1515889) | Cod sursa (job #619739) | Cod sursa (job #2238974) | Cod sursa (job #1276096) | Cod sursa (job #734018)
Cod sursa(job #734018)
#include<fstream>
#include<algorithm>
#include<math.h>
#define lim 1000001
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int t;
long long n;
int prim[lim];
long long nrp[lim];
void ceva(long long n){
long long ndiv, suma, t, i, ex;
ndiv=suma=1;
for(i=1;nrp[i]*nrp[i]<=n;i++){
if(n%nrp[i]==0){
ex=1;
t=nrp[i];
while(n%nrp[i]==0){
t=t*nrp[i];
ex++;
n/=nrp[i];
}
ndiv*= ex;
suma*=(t-1)/(nrp[i]-1)%9973;
}
}
if(n!=1){
suma*=(n*n-1)/(n-1)%9973;
ndiv*=2;
}
g<<ndiv<<" "<<suma%9973<<"\n";
}
int main(){
f>>t;
for(int i=2;i<=lim;i++)
if(prim[i]==0)
for(int j=i+i;j<=lim;j+=i)
prim[j]=1;
int k=0;
for(int i=2;i<=lim;i++)
if(!prim[i])
nrp[++k]=i;
for(int i=1;i<=t;i++){
f>>n;
ceva(n);
}
return 0;
}