zoukankan      html  css  js  c++  java
  • cf17A Noldbach problem(额,,,素数,,,)

    题意:

    判断从[2,N]中是否有超过【包括】K个数满足:等于一加两个相邻的素数。

    思路:

    枚举。

    也可以:筛完素数,枚举素数,直到相邻素数和超过N。统计个数

    代码:

    int n,k;
    int prime[1005];
    int cn=0;
    
    
    bool isPrime(int x){
        if(x==2) ret true;
        for(int i=2;i*i<=x;++i) if(x%i==0) ret false;
        ret true;
    }
    void sieve(){
        rep(i,2,n){
            if(isPrime(i)){
                prime[++cn]=i;
            }
        }
    }
    bool yes(int x){
        rep(i,2,cn){
            if(prime[i]>=x)
                break;
            if(x-prime[i]==prime[i-1]){
                ret true;
            }
        }
        ret false;
    }
    int main(){
    
        cin>>n>>k;
        sieve();
        int ans=0;
        rep(i,1,cn){
            int t=prime[i];
            --t;
            if(yes(t)){
                ++ans;
            }
        }
        if(ans>=k){
            puts("YES");
            ret 0;
        }
        puts("NO");
    
        return 0;
    }
  • 相关阅读:
    LR(0)分析法
    算符优先法之优先表构造
    自上而下的LL(1)语法分析法
    K倍区间
    全排列
    mysql自动获取时间日期
    限制
    JQuery
    LinQ 组合查询与分页
    LinQ 简单使用
  • 原文地址:https://www.cnblogs.com/fish7/p/4329905.html
Copyright © 2011-2022 走看看