Pagini recente » Cod sursa (job #2457566) | Cod sursa (job #2071633) | Cod sursa (job #160906) | Cod sursa (job #1361215)
#include <fstream>
#include <bitset>
#include <cmath>
using namespace std;
ifstream in ("ssnd.in");
ofstream out ("ssnd.out");
const long MAX_N=1000000;
int p[100000];
bitset <MAX_N> v;
void ciur()
{
long long i, j, k=1;
p[1]=2;
for(i=3;i<MAX_N;i+=2){
if(v[i]==0) {
p[++k]=i;
for(j=i*i;j<MAX_N;j+=2*i)
v[j]=1;}}
}
void desco(long long x)
{
long long nr, sum, t, i, exp;
nr=sum=1;
for(i=1; p[i]*p[i]<=x ;i++){
if(x%p[i]==0){
exp=1;
t=p[i];
while(x%p[i]==0){
exp++;
x=x/p[i];
t=t*p[i];}
nr*=exp;
sum*=(t-1)/(p[i]-1)%9973;}}
if(x!=1){
sum*=(x*x-1)/(x-1)%9973;
nr*=2;}
out<<nr<<' '<<sum%9973<<endl;
}
int main()
{
long long n, q;
ciur();
in>>n;
while(n--){
in>>q;
desco(q);}
return 0;
}