前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PAT(乙级)1007.素数对猜想(20)

PAT(乙级)1007.素数对猜想(20)

作者头像
lexingsen
发布2022-02-25 08:09:33
2110
发布2022-02-25 08:09:33
举报
文章被收录于专栏:乐行僧的博客

PAT 1007.素数对猜想(20)

让我们定义d​n为:dn=pn+1−p​n,其中p​i是第i个素数。显然有d1=1,且对于n>1有dn是偶数。"素数对猜想"认为 “存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<10^5​​ ),请计算不超过N的满足猜想的素数对的个数。 输入格式: 输入在一行给出正整数N。

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

输入样例:

代码语言:javascript
复制
20

输出样例:

代码语言:javascript
复制
4

题目分析:素数筛选法,O(n^2)求解素数会超时。

AC代码:

代码语言:javascript
复制
#include<cstdio>
#include<cmath>

const int max_n = 100010;

bool p[max_n];
int prime[max_n];
int num = 0;

int main(){
 	int n;
  	scanf("%d",&n);
  	for(int i=2;i<=n;++i){
    	if(p[i]==false){
      		prime[num++] = i;
	  	}
      	for(int j=i+i;j<=n;j+=i){
        	p[j] = true;
      	}
    } 
  	int cnt = 0;
  	for(int i=0;i<num-1;++i){
    	if(prime[i+1]-prime[i]==2){
      		cnt++; 
    	}
  	}
  	printf("%d",cnt);
  	return 0;
} 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档