Pagini recente » Cod sursa (job #2384376) | Cod sursa (job #1793592) | Cod sursa (job #2312972) | Cod sursa (job #2900745) | Cod sursa (job #1247392)
#include <stdio.h>
#define CIUR 1000000
#define MOD 9973
#define NRPR 78498
int v[NRPR], ind = 0;
char nep[CIUR + 1];
void ciur(int n){
int i, j;
for(i = 2; i * i <= n; i++){
if(!nep[i]){
for(j = i * i; j <= n; j += i){
nep[j] = 1;
}
v[ind] = i;
ind++;
}
}
while(i <= n){
if(!nep[i]){
v[ind] = i;
ind++;
}
i++;
}
}
int main(){
FILE *in = fopen("ssnd.in", "r");
FILE *out = fopen("ssnd.out", "w");
ciur(CIUR);
int t, n, i, j, pw, sd, nd, nr;
fscanf(in, "%d", &t);
for(i = 0; i < t; i++){
fscanf(in, "%d", &n);
sd = 1;
nd = 1;
j = 0;
while(n > 1 && j < ind && v[j] * v[j] <= n){
pw = 0;
nr = 1;
while(n % v[j] == 0){
n /= v[j];
nr *= v[j];
pw++;
}
nd *= pw + 1;
sd *= (nr * v[j] - 1) / (v[j] - 1);
sd %= MOD;
j++;
}
if(n > 1){
nd *= 2;
sd *= n + 1;
sd %= MOD;
}
fprintf(out, "%d %d\n", nd, sd);
}
return 0;
}