C语言判断双子素数

3和5这样差2的两个数叫双子素数 双子素数中每个加起来也是质数的叫super双子素数
素数就是质数
题目是三位数的双子素数都表示出来 其中的super双子素数也表示出来
接下来是提示
双子素数总共就30组,super双子素数12组 521和523是双子素数 827和829是双子素数
М 22:11:12
先判断一个数N是不是素数,,,然后判断N加2 是不是素数 如果N+2也是素数的话 按表格表示出来 然后100到999的数反复算

М (277527786) 22:23:43
要用到 for 剰余【%】,if 文、
М (277527786) 22:24:53
101 and 103 are twin primes.
107 and 109 are twin primes.
....
??? and ??? are twin primes.
Pair(137, 139) is a super twin prime pair.
....
第1

以下是C语言代码实现,判断三位数的双子素数并输出:

```c
#include <stdio.h>

// 判断一个数是否是素数
int is_prime(int n) {
if (n <= 1) return 0; // 小于等于1的数不是素数
int i;
for (i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}

int main() {
int i;
for (i = 101; i <= 997; i += 2) { // 遍历所有三位数
if (is_prime(i) && is_prime(i + 2)) { // 判断是否为双子素数
printf("%d和%d是双子素数\n", i, i + 2);
if (is_prime(i + 1) && is_prime(i + 2 + 1)) { // 判断是否为super双子素数
printf("%d和%d是super双子素数\n", i, i + 2);
}
}
}
return 0;
}
```

该程序先定义了一个函数is_prime,用于判断一个数是否是素数。然后在主函数中,使用for循环遍历所有三位数,对于每个数,先判断它和它加2是否都是素数,如果是则输出它们是双子素数。接着,再判断这两个数中间的那个数和它加2是否都是素数,如果是则输出它们是super双子素数。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-18
#include <iostream>
#include "math.h"
using namespace std;
int sushu(int n)
{
int i;
for (i=2;i<=sqrt(n);++i)
if (n%i==0)
return 0;
return 1;
}

int main()
{
int i,j,k;
for (i=100;i<1000;++i)

if (sushu(i))
{
if(sushu(i+2))
{
printf("%d and %d are twin primes.\n",i,i+2);
j=i/100+i/10%10+i%10;
k=(i+2)/100+(i+2)/10%10+(i+2)%10;
if(sushu(j)&&sushu(k))
printf("Pair(%d,%d) is a super twin prime pair.\n",i,i+2);
}
}
return 0;
}本回答被提问者采纳
相似回答