迅速求出两个数 m 和 n 之间即是回 文数又是素数的个数。 用C语言编写
时间: 2024-02-06 11:12:53 浏览: 147
以下是一个用C语言编写的程序,可以求解两个数m和n之间既是回文数又是素数的个数:
```c
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
bool is_prime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
bool is_palindrome(int n) {
char str[20];
sprintf(str, "%d", n);
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
return false;
}
}
return true;
}
int main() {
int m, n;
printf("请输入两个整数m和n(m < n):");
scanf("%d%d", &m, &n);
int count = 0;
for (int i = m; i <= n; i++) {
if (is_palindrome(i) && is_prime(i)) {
count++;
}
}
printf("在%d和%d之间既是回文数又是素数的数的个数为%d。\n", m, n, count);
return 0;
}
```
程序首先定义了两个函数:is_prime()和is_palindrome()。is_prime()函数用于判断一个数是否为素数,is_palindrome()函数用于判断一个数是否为回文数。这两个函数都比较简单,具体实现见代码注释。
程序主函数中首先读入两个整数m和n,然后使用一个循环遍历m到n之间的所有整数,如果一个整数既是回文数又是素数,则计数器加1。最后输出计数器的值即可。
阅读全文