1、题目
让我们定义dn 为:dn =pn+1 −pn,其中pi 是第i个素数。显然有d1 =1,且对于n>1有dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<105 ),请计算不超过N的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N。
输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
2、解题
- 思路
从2开始遍历到正整数N,并以pm记录前一个素数,如果遍历到当前数是素数,则判断与前一个素数是否相差2,若是则素数对的个数sum+1,并且以当前数替换前一个素数;若不是,则只需以当前数替换前一个素数;最后输出素数对的个数sum即可。
注意点:这题容易超时,在判断某个数n是否素数,只需判断到这个数n的开方就可以了,(开方后的数不需要判断,因为开方后的数如果是n的因子,那么必然有个开方前的数也是n的因子)。 - 代码实现
import java.util.Scanner;
public class Main{
public