孪生素数是指两个值相差为 2 的素数,例如 3 和 5,5 和 7,11 和 13……,编写程 序找出 10 对孪生素数. 用c语言,不用is——prime
时间: 2023-06-12 14:05:45 浏览: 136
以下是使用试除法的 C 代码实现,不需要使用 is_prime 函数:
```c
#include <stdio.h>
int main() {
int count = 0, n = 2;
while (count < 10) {
int is_prime1 = 1;
int is_prime2 = 1;
for (int i = 2; i * i <= n + 1; i++) {
if ((n + 1) % i == 0) {
is_prime2 = 0;
break;
}
}
if (is_prime2) {
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
is_prime1 = 0;
break;
}
}
if (is_prime1) {
printf("%d %d\n", n, n + 2);
count++;
}
}
n++;
}
return 0;
}
```
程序中使用了两个 for 循环,分别找到 n 和 n+2 是否为素数。为了优化,第二个 for 循环实际上只需要判断到 sqrt(n),因为如果 n 不是素数,则一定可以被一个小于等于 sqrt(n) 的数整除。使用两个变量 is_prime1 和 is_prime2 分别记录 n 和 n+2 是否为素数,如果都是素数则输出一组孪生素数。控制循环次数的变量 count 初始值为 0,每输出一组孪生素数 count 加 1。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)