五级
C++ 算法考级专栏
真题分析、矩阵探测、递归回溯与基础语法
🎨 视觉封面【初等数论·欧拉线性筛与素数拆分】GESP五级 / CSP-J 题解:luogu-P17455 [GESP202609 五级] 哥德巴赫猜想
📅 2026-09-15·✍️ OneCoder·计算中...·⏱️ 5 分钟
#GESP#C++#GESP五级#CSP-J#数论#素数筛#哥德巴赫猜想#真题#2026年9月#GESP202609
CCF GESP 2026年9月认证(第十五次认证)C++ 五级试题,洛谷 P17455。本题严格遵循 CCF GESP 官方大纲规范,重点考察初等数论·欧拉线性筛与素数拆分。题目逻辑严密,模型典型,是深入理解与掌握信奥核心考点的经典范例。
P17455 [luogu-P17455 [GESP202609 五级] 哥德巴赫猜想]
🔗 洛谷原题传送门:P17455
题目要求
题目描述
任何大于 2 的偶数都能写成两个质数(素数)之和。对于大于 2 的偶数 ,求有多少种写成两个质数之和的方法。 注意:两种方案不同当且仅当包含的素数互不相同(即 与 视为同一种,不重复计数)。
输入格式
一行,一个大于 2 的偶数 。
输出格式
一行,一个整数,表示方法数。
输入输出样例
样例输入 #1
TEXT
10
样例输出 #1
TEXT
2
说明/提示
。
题目分析与解题思路
- 线性素数筛预处理:,若对每个数调用单次 试除判断,总复杂度过高。标准五级解法是采用**欧拉线性筛(Linear Sieve)**在 时间内预处理出 的所有素数及布尔查表数组
is_prime。 - 无序对枚举避免重复:要求 且无序,只需枚举质数 ,此时必有 。若
is_prime[q]同样为真,则答案计数加一。 - 时空复杂度:线性筛仅耗时约 ,内存仅需 ,完全胜任 规模。
完整参考代码 (C++11)
CPP
/**
* Problem: luogu-P17455
* Standard: C++11 (CCF GESP 官方大纲规范)
* Author: OneCoder
*/
#include <iostream>
#include <vector>
using namespace std;
const int MAXN = 1000000;
bool is_prime[MAXN + 1];
vector<int> primes;
// 欧拉线性筛:保证每个合数仅被其最小质因数筛掉一次
void sieve(int limit) {
for (int i = 2; i <= limit; ++i) is_prime[i] = true;
for (int i = 2; i <= limit; ++i) {
if (is_prime[i]) {
primes.push_back(i);
}
for (int p : primes) {
if (i * p > limit) break;
is_prime[i * p] = false;
if (i % p == 0) break;
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
if (!(cin >> n) || n <= 2 || n % 2 != 0) {
return 0;
}
sieve(n);
int count = 0;
// 枚举较小质数 p <= n / 2,保证方案不重复
for (int p : primes) {
if (p > n / 2) break;
int q = n - p;
if (is_prime[q]) {
count++;
}
}
cout << count << "\n";
return 0;
}
考点归纳与备考建议
- 考纲匹配度:严格对标 CCF GESP 五级考纲重点,绝不超纲,注重基础算法与逻辑建模规范;
- 规范防范:所有代码严格以 C++11 标准编译运行,针对整数溢出、边界判断、空状态均做了详尽严整的防御性处理。
💡 OneCoder 资源指引
所有代码开源上传至 GitHub:yummy-code 仓库 · GESP 专题站:GESP WIKI
🤝 技术交流与答疑
欢迎加入:C++ GESP/CSP 考级答疑群(688906745) 与 Java/Python交流群(982860385),点击可直接加群。
📚
猜你想读 · 相关文章推荐
GESP 编程与算法 · 五级⏱️ 8 分钟
【贪心算法与平均值平衡杠杆原理】GESP五级 / CSP-J 题解:luogu-P17456 [GESP202609 五级] 饮品调制
CCF GESP 2026年9月认证(第十五次认证)C++ 五级试题,洛谷 P17456。本题严格遵循 CCF GESP 官方大纲规范,重点考察贪心算法与平均值平衡杠杆原理。题目逻辑严密,模型典型,是深入理解与掌握信奥核心考点的经典范例。
阅读全文 →
GESP 编程与算法 · 五级⏱️ 12 分钟
【GESP】C++ 五级真题解析,[2025年12月,第十二次认证]第二题-相等序列 luogu-p14918
GESP C++ 2025年12月,五级真题第二题,考察数论与贪心算法思想,对考试来说有一定难度。题目难度⭐⭐⭐☆☆。洛谷难度等级普及/提高−。
阅读全文 →
GESP 编程与算法 · 五级⏱️ 6 分钟
【GESP】C++五级练习(初等数论考点) luogu-B3941 [GESP样题 五级] 小杨的锻炼
GESP C++ 五级初等数论考点练习,难度⭐⭐★☆☆。洛谷难度等级普及−
阅读全文 →
OneCoder (lihongzheshuai)
一个中年人的自留地,记录学习 C++、GESP/NOI、Java、Python 与算法架构的心得体会。本站唯一网址:coderli.com
💬 读者留言与交流
还没有留言,快来成为第一个讨论者吧!