你需要在 /**********Program**********//********** End **********/ 的部分填写代码来实现查找符合条件的整数。以下是填空部分的完整代码:#include <stdio.h>#include <string.h>#include <math.h>#include <ctype.h>#include <stdlib.h>#define M 800#define N 900int validate(int n) { int i, j, k = 0, num[5] = {0}, size = 0; do { num[size] = n % 10; n = n / 10; size++; } while (n > 0); for (i = 0; i < size; i++) { for (j = i + 1; j < size; j++) { if (num[i] == num[j]) { k++; } } } if (k == 1) { return 1; } else { return 0; }}int prime(int n) { int i; for (i = 2; i <= (int)sqrt(n); i++) { if (n % i == 0) { return 0; } } return 1;}int main() { int i, count = 0, n1 = 0, n2 = 0; for (i = M; i <= N; i++) { if (validate(i) && prime(i)) { count++; printf("%6d", i); if (count % 8 == 0) { printf("\n"); } } } printf("\n"); return 0;}
在 validate 函数中,我添加了两个嵌套的循环来检查数字中是否有且仅有两个相同的数字位。在 prime 函数中,我更正了循环条件的错误。
这个程序会在给定的范围内查找满足条件的整数,并按照每行8个的格式打印输出。希望能帮到你! |