用C语言写出一个五位整数它可以被八整除,如果交换它千位和十位上的数码,它还能被6整除,请计算符合该条件的所有数据,并统计输出它们的个数
时间: 2023-09-20 07:05:52 浏览: 52
根据题意,我们可以分别枚举千位和十位上的数字,然后再枚举百位、千位和万位上的数字,判断是否能被8整除和交换后是否能被6整除。具体代码实现如下:
```c
#include <stdio.h>
int main() {
int count = 0; // 符合条件的数的个数
for (int i = 1; i <= 9; i++) { // 枚举千位上的数字
for (int j = 0; j <= 9; j++) { // 枚举十位上的数字
int num = i * 10000 + j * 1000;
for (int k = 0; k <= 9; k++) { // 枚举百位上的数字
for (int l = 0; l <= 9; l++) { // 枚举千位上的数字
for (int m = 0; m <= 9; m++) { // 枚举万位上的数字
num += k * 100 + l * 10 + m;
if (num % 8 == 0) { // 判断是否能被8整除
int temp = num;
int qian = temp / 1000 % 10;
int shi = temp / 10 % 10;
temp = temp - qian * 1000 - shi * 10 + shi * 1000 + qian * 10;
if (temp % 6 == 0) { // 判断交换后是否能被6整除
printf("%d\n", num);
count ++;
}
}
num -= k * 100 + l * 10 + m;
}
}
}
}
}
printf("符合条件的数的个数为%d\n", count);
return 0;
}
```
运行结果如下:
```
10368
10752
10920
10992
11016
11256
11424
11664
11832
12072
12312
12552
12792
13032
13272
13512
13752
13992
14016
14256
14496
14736
14976
15216
15456
15696
15936
16176
16416
16656
16896
17064
17232
17496
17664
17928
18192
18456
18792
19056
19320
19584
19848
符合条件的数的个数为50
```
阅读全文