cf 17a Noldbach problem

来源:互联网 发布:需要人陪 王力宏 知乎 编辑:程序博客网 时间:2024/06/05 12:00
#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define del(a,b) memset(a,b,sizeof(a))int p[1005];int pn[1005];bool f[1005];int pnum,n,k;bool isp(int x){    if(x==2)        return true;    if(x&1==0)        return false;    for(int i=3;i*i<=x;i++)        if(x%i==0)            return false;    return true;}bool is(int x){    int t=x-1;    for(int i=0;pn[i]<=t/2;i++)        if(pn[i]+pn[i+1]==t)            return true;    return false;}int main(){    del(p,false);    del(f,false);    pnum=1;    pn[0]=2;    p[2]=true;    for(int i=3;i<=1000;i+=2)        if(isp(i))        {            p[i]=true;            pn[pnum++]=i;        }    for(int i=0;i<pnum;i++)        if(is(pn[i]))            f[pn[i]]=true;    scanf("%d%d",&n,&k);    int num=0;    for(int i=7;i<=n;i++)        if(f[i])            num++;    if(num>=k)        printf("YES\n");    else        printf("NO\n");}

0 0