如何用C语言编写一个函数来生成并输出所有素数对?
时间: 2024-12-28 14:35:03 浏览: 6
在C语言中,生成并输出所有素数对(即两个质数相乘的结果)可以按照以下步骤实现:
首先,我们需要定义两个函数:`is_prime()`用于判断一个数是否为素数,以及`generate_prime_pairs()`用于生成并打印素数对。
```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++) { // 只需检查到√n即可
if (num % i == 0)
return false;
}
return true;
}
// 生成并打印素数对
void generate_prime_pairs(int limit) {
for (int i = 2; i < limit; i++) {
if (is_prime(i)) {
for (int j = i + 1; j < limit; j++) {
if (is_prime(j)) {
printf("(%d, %d)\t", i, j);
}
}
}
}
}
int main() {
int limit = 50; // 设置最大查找范围,你可以调整这个值
generate_prime_pairs(limit);
return 0;
}
```
在这个程序中,我们遍历从2到给定限制的所有整数,如果找到一个素数,就继续寻找下一个素数并与当前素数组合成一对,并打印出来。注意,这里只考虑了两数相乘的情况,如果你需要生成更大的素数对,只需增大`limit`。
阅读全文