1. 项目概述
GESPC++4级-206是一套面向C++编程学习者的综合测试题集,包含选择题、判断题和编程题三种题型。这套题目主要考察C++基础语法、算法逻辑和数学应用能力,适合有一定C++基础的学习者进行自我检测和提升。
作为一套完整的测试题,它不仅检验学习者对C++语言特性的掌握程度,还考察了将数学概念转化为代码实现的能力。其中编程题部分尤为值得关注,包含了"绝对素数"和"填幻方"两个经典算法问题,能够有效锻炼编程思维和问题解决能力。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心题目解析
2.1 绝对素数问题
绝对素数是指一个素数,其数字位置对换后仍然是素数。例如,13是素数,对换后得到31也是素数,因此13是一个绝对素数。
2.1.1 算法设计思路
解决这个问题的关键在于三个步骤:
- 判断一个数是否为素数
- 对换该数的十位和个位数字
- 判断对换后的数是否也是素数
素数判断采用经典的试除法,即检查从2到√n的所有整数是否能整除n。这种方法虽然不是最高效的素数检测算法,但对于题目给定的范围(两位数)已经足够。
2.1.2 代码实现详解
cpp复制#include <iostream>
#include <cmath>
using namespace std;
// 判断一个数是否为素数
bool isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int A, B;
if (!(cin >> A >> B)) return 0;
// 遍历 A 到 B 之间的所有数
for (int i = A; i <= B; i++) {
// 1. 判断当前数 i 是否是素数
if (isPrime(i)) {
// 2. 对换数字位置
int tens = i / 10; // 十位
int ones =
