PAT乙级 1007 素数对猜想 (20分) 线性筛素数

在这里插入图片描述

代码如下:

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cmath>
#define MAX 100005
typedef long long ll;
using namespace std;

int n,flag[MAX],ans=0;

void eratos(int n){//线性筛素数
    for(int i=0;i<=n;i++){
        flag[i]=1;
    }
    flag[0]=flag[1]=0;
    for(int i=2;i*i<=n;i++){
        if(flag[i]==1){
            int j=i+i;
            while(j<=n){
                flag[j]=0;
                j+=i;
            }
        }
    }
}


int main(){
    scanf("%d",&n);
    eratos(n);
    for(int i=2;i<=n-2;i++){
        if(flag[i]==1&&flag[i+2]==1){
            ans++;
        }
    }
    printf("%d",ans);
    return 0;
}
发布了253 篇原创文章 · 获赞 15 · 访问量 7985

猜你喜欢

转载自blog.csdn.net/weixin_44123362/article/details/103910807
今日推荐