输入一个数,若干行,每行两个整数,之间用空格隔开,从小到大输出每一对孪生素数
时间: 2024-12-25 14:33:14 浏览: 7
孪生素数指的是两个相差为2的素数对,例如(3,5), (5,7), (11,13)等。要编写一个程序,输入一系列数字并找出其中的孪生素数对,首先你需要检查每个输入的数字是否是素数,然后判断它们之间的差是否为2。以下是一个简单的C语言代码实现:
```c
#include <stdio.h>
#include <stdbool.h>
// 判断是否为素数的辅助函数
bool is_prime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
// 检查是否有孪生素数对
void find_twin_primes(int n) {
for (int i = 2; i <= n - 2; i++) { // 只考虑小于n-2的情况,避免重复检测(如5和7)
if (is_prime(i) && is_prime(i + 2)) {
printf("(%d, %d)\n", i, i + 2);
}
}
}
int main() {
int input;
printf("请输入一个数:");
scanf("%d", &input);
// 输出所有小于输入数的孪生素数对
find_twin_primes(input);
return 0;
}
```
在这个代码里,`is_prime`函数用于检查一个数是否为素数,`find_twin_primes`函数则遍历从2到输入数值减去2的所有整数,查找孪生素数对。
阅读全文