Pagini recente » Cod sursa (job #3257063) | Cod sursa (job #1632532) | Cod sursa (job #1816605) | Cod sursa (job #937823) | Cod sursa (job #3287391)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long sum,nrd;
long long pow(int b,int p){
long long e=1;
for(int i=1;i<=p;i++){
e*=b;
}
return e;
}
void desc(long long n){
int p;
sum=nrd=1;
if(n%2==0){
p=0;
do{
p++;
n/=2;
}while(n%2==0);
nrd*=(p+1);
sum*=(pow(2,p+1)-1)%9973;
}
//
if(n%3==0){
p=0;
do{
p++;
n/=3;
}while(n%3==0);
nrd*=(p+1);
sum*=((pow(3,p+1)-1)/2)%9973;
}
//
for(int d=5;d*d<=n;d+=6){
if(n%d==0){
p=0;
do{
p++;
n/=d;
}while(n%d==0);
nrd*=(p+1);
sum*=((pow(d,p+1)-1)/(d-1))%9973;
}
//
int d2=d+2;
if(n%d2==0){
p=0;
do{
p++;
n/=d2;
}while(n%d2==0);
nrd*=(p+1);
sum*=((pow(d2,p+1)-1)/(d2-1))%9973;
}
}
if(n!=1){
sum*=((pow(n,2)-1)/(n-1))%9973;
nrd*=2;
}
}
int main()
{
int t;
long long n;
f >> t;
for(int i=1;i<=t;i++){
f >> n;
desc(n);
g << nrd << ' ' << sum%9973 << '\n';
}
return 0;
}