zoukankan      html  css  js  c++  java
  • PAT——1007. 素数对猜想

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

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

    输入格式:每个测试输入包含1个测试用例,给出正整数N。

    输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。

    输入样例:

    20
    

    输出样例:

    4


     1 package com.hone.basical;
     2 import java.util.Scanner;
     3 
     4 
     5 /**
     6  * 原题目:https://www.patest.cn/contests/pat-b-practise/1007
     7  * @author Xia
     8  * 第一次做的时候是按照判断每一个数是否是素数,然后添加到list中(容易理解,但是超时)
     9  * 现在一直判断数据对是否是素数,先判断a是否是素数,再判断a+2是否是素数。
    10  */
    11 public class basicalLevel1007PrimeNumGuess {
    12     
    13     public static void main(String[] args) {
    14         //m用于记录素数对
    15         int m =1;
    16         Scanner input = new Scanner(System.in);
    17         int n = input.nextInt();
    18         if(n < 3){
    19             System.out.println(0);
    20         }
    21         else if (n == 3) {
    22             System.out.println(1);
    23         }else{
    24             for (int i = 5; (i+2) <= n; ) {        //下面从四种情况来讨论
    25                 if (isPrime(i)) {
    26                     if (isPrime(i+2))
    27                         m++;
    28                     i = i+4;
    29                 }else {
    30                     if (isPrime(i+2))
    31                         i = i+2;
    32                     else 
    33                         i = i+4;
    34                 }
    35             }
    36             System.out.println(m);    
    37     }
    38 }
    39 
    40     //判断是否是素数
    41 public static boolean isPrime(int a){
    42     boolean flag = true;
    43     for (int i = 2; i <= Math.sqrt(a); i++) {
    44         if (a%i == 0) {
    45             flag = false;
    46             break;
    47         }
    48     }
    49     return flag;
    50 }
    51 }

  • 相关阅读:
    [OpenGL(C)] 旋转立体三角形
    [MSSQL] (命令)列出所有表.字段名.主键.类型.长度.小数位数等信息
    [端口] 端口大全及端口关闭方法
    [网络] IP的划分,超详细
    [C++] 面向对象院校管理系统
    [JSVM2] (开源)JS星际争霸(for JSVM2)
    [MSSQL,MySQL,Oracle] Join用法
    [其它] .NET 世界排名榜
    [C] (回溯法)计算总费用最小费用
    [OpenGL(Win32)] 3D 轮廓字体
  • 原文地址:https://www.cnblogs.com/xiaxj/p/7977274.html
Copyright © 2011-2022 走看看