Pagini recente » Cod sursa (job #3136291) | Cod sursa (job #174784) | Cod sursa (job #2620156) | Cod sursa (job #753344) | Cod sursa (job #744769)
Cod sursa(job #744769)
#include <cstdio>
#define MAX 1000010
#define MOD 9973
bool p[MAX];
int pr[78510],nr;
void ciur(){
int i=2;
while(i<1000){
while(i<MAX&&p[i])i++;
for(int j=i*i;j<MAX;j+=i)p[j]=1;
i++;
}
for(i=2;i<MAX;i++)
if(p[i]==0)pr[++nr]=i;
}
long long pow(int x,int k){
long long r=x;
for(int i=1;i<k;i++)r*=x;
return r;
}
void desc(long long n){
int s=1,num=1,d,i=1;
while(pr[i]*pr[i]<=n&&n!=1){
if(n%pr[i]==0){
d=0;
while(n%pr[i]==0){d++;n/=pr[i];}
num*=(d+1);
s=(s*(pow(pr[i],d+1)-1)/(pr[i]-1))%MOD;
}
i++;
}
if(n!=1){
num*=2;
s=(s*((n*n)/(n-1)))%MOD;
}
printf("%d %d\n",num,s);
}
int main(){
int t;
long long n;
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
ciur();
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
desc(n);
}
}