zoukankan      html  css  js  c++  java
  • 蓝桥杯 素数求和 筛素数

    问题描述
      输入一个自然数n,求小于等于n的素数之和
    样例输入
    2
    样例输出
    2
    数据规模和约定
      测试样例保证 2 <= n <= 2,000,000
    数论知识,线性筛。
    待复习。
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 const int N = 2000010;
     4 int primes[N], cnt;
     5 bool st[N];
     6 void get_prime(int x) {
     7     for (int i = 2; i <= x ; i++) {
     8         if (!st[i]) {
     9             primes[cnt++] = i;
    10         }
    11         for (int j = 0; primes[j] <= x / i; j++) {
    12             st[primes[j] * i] = true;
    13             if (i % primes[j] == 0) {
    14                 break;
    15             }
    16         }
    17     }
    18 }
    19 int main() {
    20     int n;
    21     cin >> n;
    22     get_prime(n);
    23     long long ans = 0;
    24     for (int i = 0; i < cnt; i++) {
    25         ans += primes[i]; 
    26     }
    27     cout << ans << endl;
    28     return 0;
    29 }
  • 相关阅读:
    SQL执行效率1
    php经典算法(转载)
    linux自用命令
    vim基本命令
    xampp安装
    BUU-rsa
    z3约束器学习笔记
    面试前夕oi挣扎式复习
    bss上的格式化字符串漏洞
    一、汇编
  • 原文地址:https://www.cnblogs.com/fx1998/p/12740377.html
Copyright © 2011-2022 走看看