【素数】孪生素数

(基础)单个字符的大小写转换

如果 n 是素数,且 n+2 也是素数,则称为孪生素数。

输入:

下限范围 上限范围

输出:

在此范围内的全部孪生素数

样例:

序号测试输入期待的输出额外进程
110 20↵11,13↵
17,19↵
0
2100 200↵101,103↵
107,109↵
137,139↵
149,151↵
179,181↵
191,193↵
197,199↵
0
39000 10000↵9011,9013↵
9041,9043↵
9239,9241↵
9281,9283↵
9341,9343↵
9419,9421↵
9431,9433↵
9437,9439↵
9461,9463↵
9629,9631↵
9677,9679↵
9719,9721↵
9767,9769↵
9857,9859↵
9929,9931↵
0

思路

从下限到上限,不断判断相邻两个奇数是否为素数,发现一对就输出一对
判断一个素数是否是素数可以参考【中学】找出最大素数

代码

#include<stdio.h>  
#include<math.h>  

int prime(int n)
{
    if (n == 2 && n == 3) return 1;
    if (n % 6 == 5 || n % 6 == 1)
    {
        int t = sqrt(n) + 1, i;
        for (i = 2; i < t; i++)
        {
            if (n % i == 0)
            {
                return 0;
            }
        }
        return 1;
    }
    return 0;
}
main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    for (int i = a / 2 * 2 + 1; i < b + 1; i += 2)
    {
        if (prime(i) && prime(i + 2))
        {
            printf("%d,%d\n", i, i + 2);
            i += 2;
        }
    }
}
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值