PAT 1007. 素数对猜想 python 运行超时问题解决方案
原问题 https://www.patest.cn/contests/pat-b-practise/1007 让我们定义 d n 为:d n = p n+1 - p n ,其中 p i 是第i个素数。显然有 d 1 =1 且对于n>1有 d n 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给定任意正整数N (< 10 5 ),请计算不超过N的满足猜想的素数对的个数。 输入格式: 每个测试输入包含1个测试用例,给出正整数N。 输出格式: 每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。 输入样例: 20 输出样例: 4 思路非常简单,一个函数判断某个数是否为质数,主函数从5循环到正整数N即可,关键问题在于判断质数的函数效率如何 以下从低到高说几种质数判断方法(number为待判定的数): LEVEL 0. up_limit = number #以number本身作为循环上限 for i in range(2, up_limit) : #尝试从2到number-1的每一个数是否可以被number整除 if number % i == 0 : #余数为零则不是素数 return False return True LEVEL 0.5. up_limit = int( number/2) #不用多说吧,最小的除数是2,不可能有大于 number/2