题目

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N (< 10 <nobr aria&#45;hidden="true"> 5 </nobr> <math xmlns="http&#58;&#47;&#47;www&#46;w3&#46;org&#47;1998&#47;Math&#47;MathML"> <msup> <mn> 5 </mn> </msup> </math>),请计算不超过N的满足猜想的素数对的个数。
输入格式:
每个测试输入包含1个测试用例,给出正整数N。
输出格式:
每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。
输入样例:

20

输出样例:

4

分析:

当该数和该数-2都为素数时,算一种情况,直接模拟

代码(cpp)

#include<iostream>
using namespace std;
bool sushu(int x){
    for(int i=2;i*i<=x;i++)
            if(x%i==0)
                return false;
    return true;
}
int main(){
    int n;
    cin>>n;
    int ans=0;
    for(int i=4;i<=n;i++)
        if(sushu(i) && sushu(i-2))
            ans++;
    cout<<ans;
    return 0;
}

代码(Java)

import java.util.*;
public class Main {
    static boolean sushu(int x) {
        for(int i=2;i*i<=x;i++)
            if(x%i==0)
                return false;
        return true;
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int ans=0;
        for(int i=4;i<=n;i++)
            if(sushu(i) && sushu(i-2))
                ans++;
        System.out.print(ans);
        in.close();
    }
}