Pagini recente » Cod sursa (job #2835037) | Cod sursa (job #1158114) | Cod sursa (job #792025) | Cod sursa (job #2799832) | Cod sursa (job #2275000)
#include <iostream>
#include <cstdio>
#include <vector>
#include <bitset>
#define NMAX 1000005
#define MOD 9973
using namespace std;
bitset <NMAX> viz;
vector <int> prim;
int len;
long long x;
void euclid(){
for(int i=2;i<=NMAX;++i){
if(!viz[i]){
prim.push_back(i);
for(int j=2;i*j<=NMAX;++j)
viz[i*j] = 1;
}
}
len = prim.size();
}
void solve(){
long long s = 1, n = 1;
for(int i=0;i<len && prim[i]*prim[i]<=x;++i){
if(x%prim[i] == 0){
long long d = 0, p = prim[i];
while(x%prim[i]==0){
x/=prim[i];
p*=prim[i];
++d;
}
s = ( s * (p - 1 ) / (prim[i] - 1) ) % MOD;
n = n * (d + 1);
}
}
if(x>1){
n *= 2;
s = ( s * ( x * x - 1 ) / ( x - 1 ) ) % MOD;
}
cout<<n<<" "<<s<<"\n";
}
int main()
{
euclid();
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
int n;
cin>>n;
for(int i=0;i<n;++i){
cin>>x;
solve();
}
return 0;
}