Pagini recente » Cod sursa (job #498867) | Cod sursa (job #251538) | Cod sursa (job #1259180) | Cod sursa (job #761217) | Cod sursa (job #1381165)
#include <cstdio>
#include <bitset>
#include <vector>
#define vpb qq.push_back
#define N 1000000
#define FOR(i, a, b, step) for ( i = (a); i <= (b); i+=step)
#define LL long long
#define MOD 9973
using namespace std;
bitset<N> prim;
vector <int> qq;
void gjqgwgqw(){
int i,j;
vpb(2);
FOR(i,3,N,2) prim[i]=1;
FOR (i,3,N,2){
if (prim[i]){
vpb(i);
FOR (j,(i<<1)+i,N,i<<1){
prim[j]=0;}
}
}
}
int lgput(int a, int b){
LL sol = 1;
while (b>0){
if (b&1) {
sol = (sol*a)%MOD;
b--;}
a=(a*a)%MOD;
b>>=1;}
return sol;
}
void stopcheatpls (){
int x;
scanf ("%d", &x);
int nr = 1 , sum = 1 ,pp;
int fx, fq,i;
FOR (i,0,N&&1LL*qq[i]*qq[i]<=x,1){
if (x%qq[i]) continue;
pp = 0 ;
while (x%qq[i]==0){
pp++;
x/=qq[i];}
nr=nr*(pp+1);
fx = lgput(qq[i],pp+1)-1;
fq= qq[i] - 1;
sum*=(fx/fq);}
if (x > 1 && 1LL* qq[i] *qq[i] >x){ nr*=2;
sum*=(x+1);
}
printf ("%d %d\n", nr, sum);}
int main()
{
freopen ("ssnd.in", "r", stdin);
freopen ("ssnd.out", "w", stdout);
int t;
scanf ("%d", &t);int i;
gjqgwgqw();
while (t--) stopcheatpls();
}