zoukankan      html  css  js  c++  java
  • SGU 231.Prime Sum

    题意:

      求有多少对质数(a,b)满足a<=b 且a+b也为质数。(a+b<=10^6)


    Solution:

      除了2之外的质数都是奇数,两个奇数的和是偶数,不可能是质数。所以题目就是求差为2的质数对的个数。

          先用筛法刷出10^6内的质数,用bool数组标记(int型数组会超内存),然后扫一遍筛出来的质数,统计满足要求的答案就行了。

    #include <iostream>
    using namespace std;
    const int INF = 1000002;
    bool f[INF];
    int ok[80000],out[10000];
    int n, sum, ans;
    void sift (int n) {
        for (int i = 2; i <= n; i++) {
            if (!f[i]) {
                ok[++sum] = i;
                for (int j = i + i; j <= n; j += i)    f[j] = 1;
            }
        }
    }
    int main() {
        cin >> n;
        sift (n);
        for (int i = 1; i < sum; i++)
            if (!f[ok[i] + 2])        out[++ans]=ok[i];
    
        cout << ans << endl;
        for(int i=1;i<=ans;i++)
            cout<<2<<' '<<out[i]<<endl;
    }
    Code
  • 相关阅读:
    vue中的$nextTick()
    对SPA(单页面应用)的总结
    函数节流和函数防抖
    前端路由
    let、const
    深拷贝与浅拷贝
    小白浅谈Ajax基础
    关于BFC布局的那些事
    关于BFC的那些事
    Sass基础知识及语法
  • 原文地址:https://www.cnblogs.com/keam37/p/4324631.html
Copyright © 2011-2022 走看看