1007 素数对猜想

Posted cstdio1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1007 素数对猜想相关的知识,希望对你有一定的参考价值。

让我们定义d?n??为:d?n??=p?n+1??p?n??,其中p?i??是第i个素数。显然有d?1??=1,且对于n>1有d?n??是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。

现给定任意正整数N(<),请计算不超过N的满足猜想的素数对的个数。

输入格式:

输入在一行给出正整数N

输出格式:

在一行中输出不超过N的满足猜想的素数对的个数。

输入样例:

20

输出样例:

4


//只能用1遍循环
import java.util.*;    
public class Main{    
    public static List <Integer> m = new LinkedList<Integer>();
//    public void push(Integer e){
//        list.add(e);
//    }
//    public int size(){
//        return list.size();
//    }
//    public int get(int i){
//        return list.get(i);
//    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
//        Main m = new Main();
        int a=sc.nextInt(),now=0,cnt=0;
        m.add(2);
        for(int i=3;i<=a;i+=2){
            boolean flag=true;
            for(int j=2;j<=Math.sqrt(i);j++){
                if(i%j==0){
                    flag=false;
                    break;
                }
            }
            if(flag){
                if(i-m.get(now)==2){
                    cnt++;
                }
                m.add(new Integer(i));
                now++;
                
            }

        }System.out.println(cnt);

//        int maxIndex=m.get(m.size()-1);
        //<=a
//        for(int i=0;i<m.size();i++){
//            if(m.get(i)==a){
//                maxIndex=i;
//                break;
//            }
//            if(m.get(i)<a&&m.get(i+1)>a)
//                maxIndex=i;
//                break;
//            }
//        }//System.out.println(maxIndex);
        // int cnt=0,maxLen=0;
        // for(int i=0;i<=m.size()-2;i++){
        //     if(m.get(i+1)-m.get(i)==2){
        //         cnt++;
        //     }
            
        // }
//        
    }
    
    

}
    

 

以上是关于1007 素数对猜想的主要内容,如果未能解决你的问题,请参考以下文章

1007. 素数对猜想 (20)

乙_1007 素数对猜想 (20分)

1007. 素数对猜想 (20)

1007 素数对猜想 (20 分)

1007 素数对猜想

PAT-1007素数对猜想