PAT 乙级 -- 1007 -- 素数对猜想_素数对noip-程序员宅基地

技术标签: PAT  C++  C  NOI  ACM  NOIP  

题目简述

      让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
      现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。

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

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

输入样例
20

输出样例
4

C++代码样例

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <string.h>

using namespace std;

bool isPrime(int p) //素数判定
{
    int i = 0;
    for(i=2;i<=sqrt(p);i++)
    {
        if(p%i==0)
        {
            return false;
        }
    }
    return true;
}

void setPrime(long (&Prime)[10005], const int N) //按照要求在数组中置素数
{
    int p = 1; //素数
    int i = 0; //Prime数组序数
    while(1)
    {
        if(isPrime(p))
        {
            if(p>N)
            {
                return;
            }else{
                Prime[i] = p;
                i++;
            }
        }
        p++;
    }
    return;
}

void clacBetPrime(long (&Prime)[10005], long (&betPrime)[10005]) //计算素数数组差值
{
    int i = 0, j = 1;
    while(Prime[j] != 0)
    {
        betPrime[i] = Prime[j] - Prime[i];
        i++;
        j++;
    }
    return;
}

int main(void)
{
    int i=0,j=0;
    int N = 0;
    int count = 0;
    long Prime[10005];
    long betPrime[10005];
    memset(Prime,0,sizeof(Prime));
    memset(betPrime,0,sizeof(betPrime));
    scanf("%d",&N);
    setPrime(Prime,N);
    clacBetPrime(Prime,betPrime);
    for(i=0; betPrime[i]!=0; i++)
    {
        if(betPrime[i] == 2)
        {
            count++;
        }
    }
    printf("%d",count);
    return 0;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/PeterZ1997/article/details/79212161

智能推荐

SQL手工注入漏洞测试(MySQL数据库)_通过在发送者字段后的cc、bcc参数进行手工注入,可以检测存在什么漏洞-程序员宅基地

文章浏览阅读2k次,点赞5次,收藏11次。文章目录一、进入靶场二、在公告处发现注入点三、确定注入格式四、确定字段数五、确定显示字段六、查询数据库名字和版本七、查询其它数据库名称八、查询数据库表名九、查询表中字段名十、查询用户信息十一、登陆成功题目信息:背景介绍安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭建好一个靶场环境Nginx+PHP+MySQL,PHP代码对客户端提交的参数未做任何过滤。尽情的练习SQL手工注入吧..._通过在发送者字段后的cc、bcc参数进行手工注入,可以检测存在什么漏洞

docker快速入门教程_nvcr.io-程序员宅基地

文章浏览阅读876次,点赞5次,收藏10次。文章目录:1 虚拟机和容器相关概念说明1.1 虚拟机1.2 Linux容器:1.3 Docker 是什么?1.4 Docker 的用途2 docker的安装、添加用户组和启动2.1 docker在不同系统中的安装2.2 验证docker是否安装成功的命令2.3 把docker添加到用户组中2.4 启动docker4 实例:hello-world镜像4.1 查看和删除本地已经有的镜像4.2 删除镜像的时候报错:Error response from daemon: conflict: unable to re_nvcr.io

离散数学与计算机编程(一)-程序员宅基地

文章浏览阅读711次。命题函数 author:misko_leeglobal var:设含有变量的命题是命题函数,记作P(X)(P(X1,X2,Xn))(若无说明,本系列全部以单变量函数为描述方式)。则有:1.∀xP(x)表示该命题论域的合取。2.∃xP(x)表示该命题论域的析取。Content:上面的定理在计算机中的描述可以表示为。ex..._数学与计算机编程

Html5新特性 canvas画板画直线和等比缩放居中裁剪图片_canvas图片放大后居中裁剪-程序员宅基地

文章浏览阅读9.4k次,点赞3次,收藏5次。介绍一下canvas的几种使用方法,画直线和裁剪图片;包含以下两个方面: 1、canvas裁剪图片:h5的这个新特性,我们可以使用canvas进行图片的处理,比如裁剪,等比放大或缩小。比如我们有个360x607宽高的目标图,如果上传图片的宽高都大于目标图,我们对目标图等比压缩,然后在剧中裁剪;如果又一边小于,我们就对上传图片等比放大,让其都满足目标大小,再居中裁剪。 2、canvas标签画多条直线_canvas图片放大后居中裁剪

qt子窗口跟随主窗口进行移动(放大和缩小也实现)_监听父窗口size变化 qt-程序员宅基地

文章浏览阅读7.6k次,点赞10次,收藏46次。子窗口跟随主窗口进行移动,需要获取子窗口相对于父窗口的位置。然后在mousemove 的时候,始终获取相对位置,然后移动子窗口即可。代码:.hprotected: void resizeEvent(QResizeEvent *e); void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event);.cpp_监听父窗口size变化 qt

Android ScrollView嵌套ListView嵌套GridView的上下拉以及加载更多_androidtv scrollview+gridview实现上拉加载-程序员宅基地

文章浏览阅读771次。ScrollView 效果ScrollView 说明一个ScrollView 嵌套ListView 嵌套GridView的上拉加载更多,下拉刷新的demo。主要是重写了GridView和LsitView中的onMeasure 方法。写的比较简单,希望对初学者有帮助。[java] view plaincopy_androidtv scrollview+gridview实现上拉加载

随便推点

windows端的PyCharm连接linux服务器进行远程开发和调试(待完善)_pycharm在linux-程序员宅基地

文章浏览阅读167次。配置目录同步配置远程python解释器参考链接._pycharm在linux

第二篇:MySQL之InnoDB物理存储结构_mysql inode page-程序员宅基地

文章浏览阅读2.2k次,点赞6次,收藏21次。MySQL中InnoDB引擎的物理存储结构1. 个人理解看了很多MySQL的书籍和博客,感觉都是互相抄来抄去,把知识点的罗列,讲不清楚前因后果,让人看起来莫名其妙的。所以,我决定从MySQL的底层物理存储结构了解,掌握了InnoDB的物理存储结构,再理解索引,锁,事务,日志之类的上层优化就很容易了。2. 知识来源本文主要观点来自于阿里数据库内核月报http://mysql.taobao.org/monthly/2016/02/01/和一篇程序员宅基地https://blog.csdn.net/_mysql inode page

使用递归方式求最大公约数和最小公倍数_递归法求最小公倍数-程序员宅基地

文章浏览阅读2.7k次,点赞6次,收藏7次。#include int gcd (int a,int b){ if(a%b==0) return b; else return gcd(b,a%b);}_递归法求最小公倍数

the security of smart contract- 2-程序员宅基地

文章浏览阅读488次。出处:https://cloud.tencent.com/developer/article/1192548深度解析Solidity的17个坑及超详细避坑指南写的很好,好好学习1. Re-Entrancy重新入口,可重入性本博客the security of smart contract- 1中已经解释过原因,这里用例子说明:pragma solidity ^0.4.23;..._payable函数,依靠claim reward方法名让你误以为领取了0.11eth

不使用第3个变量,实现两个数的对调C/C++_不使用第3个变量,实现两个数的对调-程序员宅基地

文章浏览阅读9.7k次,点赞7次,收藏10次。本关任务:不用第三个变量,实现将两个数进行对调的操作。输入:3 4输出:a=3 b=4a=4 b=3输入:7 85输出:a=7 b=85a=85 b=7#include<stdio.h> int main(void) { int a,b; //Enter a and b: scanf("%d%d",&a,&b); printf("a=%d b=%d\n",a,b); /*********Begin*****_不使用第3个变量,实现两个数的对调

java毕业设计仓库管理系统(附源码、数据库)_java编写仓库管理系统-程序员宅基地

文章浏览阅读419次。Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。Springboot + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。2. 前端:vue+css+javascript+jQuery+easyUI+highcharts。2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;_java编写仓库管理系统

推荐文章

热门文章

相关标签