69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
int main() {
int num, i, j, k = 0, t = 1, test, a[10000] = {0}, b[10000] = {0}, \
m, n, p;
while (scanf("%d", &num) != EOF) {
for (i = 2; i < num; i++) {
t = 1;
for (j = 2; j < i; j++) {
if (i % j == 0) {
t = 0;
break;
}
}
if (t == 1 && num % i == 0) {
a[k] = i;
k++;
}
}
for (m = 0; m < k; m++) {
n = 1;
test = a[m];
while (num % test == 0) {
test *= a[m];
n++;
}
b[m] = n-1;
}
a[k] = b[k] = 0;
k++;
}
for (j = 0; j < k-1; j++) {
if (a[j] == 0) printf("\n");
else printf("%d %d\n", a[j], b[j]);
}
return 0;
}
while (num % test == 0)//有bug,除数为0就出错了