输出10-100之间的可逆素数用c语言
时间: 2024-03-26 22:40:44 浏览: 98
可逆素数是指:将素数的各位数字反转后得到的数仍然是素数。例如,13是可逆素数,因为它反转后得到的31也是素数。
下面是一个输出10-100之间的可逆素数的C语言程序:
```c
#include <stdio.h>
// 判断一个数是否素数
int is_prime(int n) {
if (n < 2) {
return 0;
}
for (int i = 2; i * i <= n; ++i) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
// 反转一个整数
int reverse(int n) {
int res = 0;
while (n) {
res = res * 10 + n % 10;
n /= 10;
}
return res;
}
int main() {
for (int i = 10; i <= 100; ++i) {
if (is_prime(i) && is_prime(reverse(i))) {
printf("%d\n", i);
}
}
return 0;
}
```
输出结果为:
```
13
17
31
37
71
73
79
97
```
相关问题
帮我写一个c语言输出10到100之间的可逆素数
好的,以下是代码实现:
```c
#include <stdio.h>
// 判断数字是否是素数
int is_prime(int num) {
if (num < 2) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
// 判断数字是否可逆
int is_reversible(int num) {
int temp = num, reverse = 0;
while (temp > 0) {
reverse = reverse * 10 + temp % 10;
temp /= 10;
}
return num == reverse;
}
int main() {
for (int i = 10; i <= 100; i++) {
if (is_prime(i) && is_reversible(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
代码中用到了两个函数,`is_prime` 用来判断数字是否是素数,`is_reversible` 用来判断数字是否可逆。最后通过循环判断并输出符合条件的数字。
c语言输出四位可逆素数
要输出四位可逆素数,需要先判断一个四位数是否为素数,然后再判断它的反序数是否也是素数。可以使用引用中提到的prime.h头文件中的函数来判断一个数是否为素数,使用nixu_zong4.h头文件中的函数来将一个数反转。具体步骤如下:
1. 定义一个数组来存储四位可逆素数,数组大小为900,因为四位数中最多只有900个素数。
2. 使用循环从1001到9999遍历所有的四位数,步长为2,因为偶数不可能是素数。
3. 对于每个四位数,先判断它是否为素数,如果是,则将它的反序数计算出来。
4. 判断反序数是否为素数,如果是,则将这个四位数存入数组中。
5. 循环结束后,输出数组中存储的所有四位可逆素数。
代码如下(使用了引用中提到的prime.h和nixu_zong4.h头文件):
```c
#include <stdio.h>
#include "prime.h"
#include "nixu_zong4.h"
int main() {
int reversible_primes[900];
int count = 0;
for (int i = 1001; i < 10000; i += 2) {
if (is_prime(i)) {
int reversed = nixu_zong4(i);
if (is_prime(reversed)) {
reversible_primes[count] = i;
count++;
}
}
}
for (int i = 0; i < count; i++) {
printf("%d ", reversible_primes[i]);
}
return 0;
}
```
阅读全文