记录编号 429515 评测结果 AAAA
题目名称 [SYZOJ] 鬼畜の素数 最终得分 100
用户昵称 Gravatarsxysxy 是否通过 通过
代码语言 C++ 运行时间 1.080 s
提交时间 2017-07-27 16:14:17 内存使用 12.23 MiB
显示代码纯文本
#include <cstdio>
#include <cstdarg>
#include <bitset>
#include <vector>
#include <cmath>
using namespace std;
const int MAXN = 1e8+2;
vector<int> pms;
bitset<MAXN> vis;
int main(){  
  freopen("ghostprime.in", "r", stdin);
  freopen("ghostprime.out", "w", stdout);
  int n; scanf("%d", &n);
  unsigned long long ans = 0;
  pms.reserve(size_t(n/log2(n)));
  for(int i = 2; i <= n; i++){
    if(!vis[i]){
      pms.push_back(i);
      ans += i;
    }
    for(int j = 0; j < pms.size(); j++){
      int k = pms[j]*i;
      if(k > n)break;
      vis[k] = true;
      if(i%pms[j] == 0)break;
    }
  }
  printf("%llu\n", ans);
  return 0;
}