Pagini recente » Cod sursa (job #303609) | Cod sursa (job #2354064) | Cod sursa (job #2960940) | Monitorul de evaluare | Cod sursa (job #1259624)
#include <stdio.h>
int v[100000],nep[100000];
int main(){
FILE *fin = fopen("ssnd.in", "r");
FILE *fout = fopen("ssnd.out", "w");
int t, i, j, pw, nd;
long long n, sd, nr;
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++;
}
fscanf(in, "%d", &t);
for(i = 0; i < t; i++){
fscanf(in, "%lld", &n);
sd = 1;
nd = 1;
j = 0;
while(n > 1 && j < ind && v[j] * v[j] <= n){
if(n % v[j] == 0){
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 %= 9973;
}
j++;
}
if(n > 1){
nd *= 2;
sd *= n + 1;
sd %= 9973;
}
fprintf(out, "%d %lld\n", nd, sd);
}
return 0;
}