Pagini recente » Cod sursa (job #2161935) | Cod sursa (job #2408654) | Cod sursa (job #2259867) | Cod sursa (job #105309) | Cod sursa (job #1046833)
#include<stdio.h>
#include<bitset>
#define MOD 9973
const int DIM=1000000;
std::bitset<DIM> isprime;
int v[78500];
void eratostenes(){
long long i,j;
v[++v[0]]=2;
for(i=3;i<=DIM;i+=2){
if(isprime[i]==0){
v[++v[0]]=i;
for(j=i*i;j<=DIM;j+=(2*i)){
isprime[j]=1;
}
}
}
}
void solve(long long n,int& nr,int& sum){
int i,exponent;
long long div;
sum=nr=1;
for(i=1;i<=v[0] && (long long)v[i]*v[i]<=n;i++){
if(n%v[i]) continue;
div=v[i]; exponent=0;
while(n%v[i]==0){
n/=v[i];
exponent++;
div*=v[i];
}
sum=(((div-1)*sum)/(v[i]-1))%MOD;
nr*=(exponent+1);
}
if(n>1){
nr*=2;
sum=(1LL*sum*(n+1))%MOD;
}
}
int main(){
int i,T,sum,nr;
long long n;
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d",&T);
eratostenes();
for(i=0;i<T;i++){
scanf("%lld",&n);
solve(n,nr,sum);
printf("%d %d\n",nr,sum);
}
return 0;
}