寻找双质数c语言
时间: 2023-07-13 19:08:43 浏览: 87
双质数是指相邻两个奇数都是质数的一对数,如(3,5),(11,13),(17,19)等等。以下是一个用 C 语言寻找双质数的程序:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n)
{
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main()
{
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
for (int i = n; ; i++) {
if (is_prime(i) && is_prime(i + 2)) {
printf("%d 和 %d 是一对双质数。\n", i, i + 2);
break;
}
}
return 0;
}
```
程序首先定义了一个函数 `is_prime`,用于判断一个数是否为质数。然后在主函数中,读入一个正整数 `n`,从 `n` 开始往后遍历所有奇数,如果找到一对相邻的质数,则输出并结束程序。
相关问题
编写程序寻找双质数 c语言大学内容 不用高级函数
以下是一个简单的 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 main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
for(int i = 2; i <= n / 2; ++i) {
if(is_prime(i) && is_prime(n - i)) {
printf("%d和%d是一对双质数\n", i, n - i);
}
}
return 0;
}
```
程序中用到了两个函数,一个用于判断一个数是否为质数,另一个用于查找双质数。is_prime 函数使用了简单的质数判断方法:从 2 到该数的平方根之间的每个数都试除一次,如果有一个除数,就不是质数。main 函数则遍历 2 到 n/2 之间的每个数,如果该数和 n-该数都是质数,则输出一对双质数。
注意,该程序只能计算小于等于 n/2 的双质数,如果需要计算更大的双质数,需要修改程序中的循环条件。
用C语言写一个代码,能够寻找双质数
下面是一个基于C语言的寻找双质数的代码:
```
#include <stdio.h>
// 判断一个数是否为质数
int is_prime(int num) {
if (num < 2) {
return 0;
}
for (int i = 2; i <= num / i; ++i) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int max_num;
printf("请输入一个正整数:");
scanf("%d", &max_num);
printf("双质数为:\n");
for (int i = 3; i <= max_num - 2; i += 2) {
if (is_prime(i) && is_prime(i + 2)) {
printf("%d %d\n", i, i + 2);
}
}
return 0;
}
```
这个代码通过定义一个函数 `is_prime` 来判断一个数是否为质数,然后在 `main` 函数中依次遍历所有奇数,找出连续相差为 2 的两个质数,即为双质数。
注意:这个代码只能寻找小于等于输入数的双质数,若输入数较大,寻找时间可能会比较长。
阅读全文