素数三元组-南阳OJ1156(高效打表筛选)

本文介绍了一种解决南阳OJ1156问题的方法——使用打表筛选来查找不超过n的素数三元组。通过避免深度循环和提前排除,优化了算法的时间效率。代码中体现了`continue`语句的使用,它帮助在测试过程中跳过无效组合,最终找到符合条件的素数三元组。当不存在这样的三元组时,输出"No triple"。
摘要由CSDN通过智能技术生成

素数三元组

时间限制:1000 ms  |  内存限制:65535 KB

难度:1

描述

    相邻三个奇数都是素数是一种非常少见的情形,也就是三个奇数p-2, p, p+2都是素数,这样就形成了一个素数三元组。请找出三个数都不超过n的所有这样的素数三元组。

看到这道题,思路无非就是把数一个一个测,而且也在意料之中超时,因为测试数据很大很大。所以要么找规律,要么尽可能压缩算法时间。

我介绍第二种方法,打表筛选压缩算法时间。

代码主要理解continue的优点,通过提前排除避免深度循环,然后同时测三个数并做好标记,在两个continue的跳过下能执行到最后的就是一组解,储存。

代码如下:

 

/*素数三元,2017/12/28 by 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值