题解 | Forsaken喜欢数论

Forsaken喜欢数论

https://www.nowcoder.com/practice/c4aa705c1058470c8ab4b96f15c95616

Modern Cpp

欧拉筛是可以用最小质因子筛的,jiangly老师的欧拉筛模板就是如此。然后累加1到n的最小质因子即可。

#include <iostream>
#include <vector>
#include <numeric>

std::vector<int> minp, primes;

void sieve(int n){
  minp.assign(n + 1, 0);
  primes.clear();

  for(int i = 2; i <= n; i++){
    if(!minp[i]){
      minp[i] = i;
      primes.push_back(i);
    }

    for(const auto& p : primes){
      if(p * i > n){
        break;
      }
      minp[p * i] = p;
      if(p == minp[i]){
        break;
      }
    }
  }
}

int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  std::cout.tie(nullptr);

  int n;
  std::cin >> n;

  sieve(n);

  std::cout << std::accumulate(minp.begin(), minp.end(), 0LL) << "\n";

  return 0;
}

全部评论
全局变量太多,不够modern
点赞 回复 分享
发布于 03-28 10:39 北京

相关推荐

暴杀流调参工作者:春招又试了一些岗位,现在投递很有意思,不仅要精心准备简历,投递官网还得把自己写的东西一条一条复制上去,阿里更是各个bu都有自己的官网,重复操作无数次,投完简历卡完学历了,又该写性格测评、能力测评,写完了又要写专业笔试,最近还有些公司搞了AI辅助编程笔试,有些还有AI面试,对着机器人话也听不明白录屏硬说,终于到了人工面试又要一二三四面,小组成员面主管面部门主管面hr面,次次都没出错机会,稍有不慎就是挂。 卡学历卡项目卡论文卡实习什么都卡,没有不卡的😂
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务