Pagini recente » Cod sursa (job #551201) | Cod sursa (job #2522216) | Cod sursa (job #1425444) | Clasament lets_go_oni | Cod sursa (job #736588)
Cod sursa(job #736588)
#include <cstdio>
#define MOD 9973
using namespace std;
long long n;
int pr[78499],k;
unsigned char p[250001],set=1;
void prime(){
int i=2,j;
while(i<=1000){
while(p[i/8]&set<<(i&7))i++;
for(j=i*i;j<=1000000;j+=i)p[j/8]|=set<<(j&7); i++;};
for(i=2;i<=1000000;i++)if(!(p[i/8]&set<<(i&7)))pr[++k]=i;
}
void process(){
long long nr,d,S,x;
int i=1;
nr=1; S=1LL;
while(i<=78498&&pr[i]<=n){
if(n%pr[i]==0){
x=pr[i];
d=0;
while(n%pr[i]==0){
x*=pr[i];
d++;
n/=pr[i]; }
nr=nr*(d+1)%MOD;
S=S*((x-1)/(pr[i]-1))%MOD;
}
i++; }
if(n!=1){
nr=nr*2%MOD;
S=S*((n*n-1)/(n-1))%MOD;
}
printf("%lld %lld\n",nr,S);
}
int main(){
int t;
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
prime();
scanf("%d",&t);
while(t-->0){
scanf("%lld",&n);
process();
}
}