【欧拉计划第 10 题】 质数之和 Summation of primes

简介: 【欧拉计划第 10 题】 质数之和 Summation of primes

Problem 10 Summation of primes

The sum of the primes below 10 1010 is

2 + 3 + 5 + 7 = 17 \large 2 + 3 + 5 + 7 = 172+3+5+7=17

Find the sum of all the primes below two million.

问题 10 质数之和

10 1010 以下的质数之和为

2 + 3 + 5 + 7 = 17 \large 2 + 3 + 5 + 7 = 172+3+5+7=17

求两百万以下的所有质数之和

思路分析

首先单看题目知识点,涉及到素数(质数),和第七题 10001st prime一定会有类似之处

我们采用最直接的方法求解(暴力),枚举范围内的所有质数,然后求和

注意,像这样的解决方案并非最佳,只适用于小规模数据,规模的调整对于对应算法的要求很高

比如说,这个题目你可以用暴力枚举解决它。但是,如果我把数据量级调整到亿,这种方法就未必可以使用,需要更高级的算法来解决,具体请参考文末代码段

总之,大家要根据实际情况采用最优的方案来解决对应的问题,没有什么办法可以一劳永逸,适用于所有情况

代码实现

/*
 * @Author: coder-jason
 * @Date: 2022-04-17 15:33:41
 * @LastEditTime: 2022-04-17 16:04:24
 */
#include <bits/stdc++.h>
using namespace std;
long long sum = 0; // 注意数据范围,考虑溢出情况
bool is_prime(int num)
{
    for (int i = 2; i <= sqrt(num); i++)
        if (num % i == 0)
            return false;
    return true;
}
int main()
{
    for (int i = 2; i < 2000000; i++)
        if (is_prime(i))
            sum += i;
    cout << sum << endl;
    return 0;
}

答案:142913828922


埃拉托斯特尼筛

原理:从 2 22 开始,将每个素数的各个倍数,标记成合数。一个素数的各个倍数,是一个差为此素数本身的等差数列,此筛法是列出所有小素数最有效的方法之一

这里使用埃氏筛法解决亿级数据量级问题,实现代码段如下,供参考学习

/*
 * @Author: coder-jason
 * @Date: 2022-04-17 15:33:41
 * @LastEditTime: 2022-04-17 20:33:01
 */
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e9 + 10;
bool vis[maxn];
ll sieve(int n)
{
    ll ret = 0;
    int m = (int)sqrt(n + 0.5);
    for (int i = 2; i <= m; i++) if(!vis[i])
    {
        for (int j = i * i; j <= n; j += i)  vis[j] = true;
        ret += i;
    }
    for(int i = m+1;i <= n;i++)  if(!vis[i])
        ret += i;
    return ret;
}
int main()
{
    printf("%lld\n", sieve(1000000000));
    return 0;
}



相关文章
|
2天前
|
云安全 人工智能 运维
阿里云SecOps Agent,全新安全跨产品执行体验
自然语言驱动 云安全中心/WAF/CFW/ 等多款安全产品联动
1583 2
|
2天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
487 2
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
13天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
14天前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
875 11
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
|
2天前
|
数据采集 人工智能 搜索推荐
企业智能体的下半场,如何让智能体越用越聪明?
AgentLoop 正在邀测期,点击申请邀测资格。
192 124
|
14天前
|
人工智能 运维 JavaScript
阿里云Qoder CN(原通义灵码)全解析 产品形态、版本划分与技术适配说明
在AI辅助开发与智能办公工具持续普及的当下,阿里云旗下原通义灵码正式更名为Qoder CN,同时延伸出QoderWork CN、Qoder CN CLI、Qoder CN Mobile等多款配套产品,形成覆盖代码开发、日常办公、终端交互、移动端使用的完整工具矩阵。Qoder CN核心定位为AI智能编码助手,深度适配主流代码编辑器、集成开发环境以及终端场景;QoderWork CN则偏向桌面端综合办公辅助,二者面向不同使用场景,划分了多个版本档位,搭配差异化资源配额、功能权限与计费规则,同时兼容多款主流大模型。
940 8
|
9天前
|
人工智能 自然语言处理 算法
阿里云百炼Qwen 3.7 Plus与Max实测全解:性价比与多模态能力、成本深度对比
2026年,阿里云百炼平台推出的Qwen 3.7系列成为企业与开发者落地AI应用的核心选择,其中Qwen 3.7 Max与Plus作为两大旗舰版本,定位差异显著:Max是纯文本推理旗舰,专注高强度智能体与复杂逻辑任务;Plus则是多模态全能版,在保留强大文本能力的同时,补齐图像、视频理解能力,且价格大幅降低。本文基于2026年最新实测数据,从核心参数、文本能力、多模态能力、智能体表现、性价比与场景选型六大维度,全面解析两款模型的差异,为用户提供精准选型参考。
470 0
|
14天前
|
JSON 缓存 安全
通过 CC Switch 本地路由让 Codex CLI 接入 DeepSeek 等第三方模型
CC Switch 通过本地路由(`127.0.0.1:15721`)实现协议转换:将 Codex 的 Responses API 请求自动映射为 DeepSeek 等厂商的 Chat Completions 接口,兼容流式响应与工具调用,无需修改 Codex 源码,安全隔离 API Key。(239字)
2569 7
通过 CC Switch 本地路由让 Codex CLI 接入 DeepSeek 等第三方模型