[GESP样题 四级] 绝对素数

简介: [GESP样题 四级] 绝对素数

B3939 [GESP样题 四级] 绝对素数

题目

如果一个两位数是素数,且它的数字位置经过对换后仍为素数,则称为绝对素数,例如 13。给定两个正整数 A, B,请求出大于等于 A,小于等于 B 的所有绝对素数。

输入 1 行,包含两个正整数 A 和 B。保证 10<A<B<100。

若干行,每行一个绝对素数,从小到大输出。

运行代码
#include <iostream>
using namespace std;
bool Prime(int num);
bool APrime(int num);
int main() {
    int A, B;
    cin >> A >> B;
    // 遍历从A到B之间的所有数
    for (int num = A; num <= B; ++num) {
        if (APrime(num)) {
            cout << num << endl;
        }
    }
    return 0;
}
// 判断一个数是否为素数
bool Prime(int num) {
    if (num <= 1) 
    return false;
    if (num <= 3)
    return true;
    if (num % 2 == 0 || num % 3 == 0) 
    return false;
    for (int i = 5; i * i <= num; i += 6) {
        if (num % i == 0 || num % (i + 2) == 0)
        return false;
    }
    return true;
}
// 判断一个两位数是否为绝对素数
bool APrime(int num) {
    if (num < 10 || num >= 100)
 return false; // 确保是两位数
    int rNum = (num / 10) + (num % 10) * 10; // 反转数字
    return Prime(num) && Prime(rNum);
}
思路

首先定义了Prime函数来判断一个数是否为素数,使用了一种常见的优化后的试除法。然后定义了APrime函数,它首先检查给定的数是否为两位数,接着计算该数的反转数,并利用Prime函数判断原数及其反转数是否均为素数。最后,在main函数中,程序读取输入的范围AB遍历此范围内的所有数,对于每个数调用APrime函数,如果是绝对素数则输出。

目录
打赏
0
0
0
0
26
分享
相关文章
11.Java方法的综合练习题大全-双色球彩票系统,数字的加密和解密等试题(下)
11.Java方法的综合练习题大全-双色球彩票系统,数字的加密和解密等试题(上)
139 1
[GESP样题 四级] 填幻方和幸运数
[GESP样题 四级] 填幻方和幸运数
96 1
【5G大唐杯】——5G考试等级考考试基础试题(一)
【5G大唐杯】——5G考试等级考考试基础试题(一)
269 1
网工大题题型总结(1)-------网络安全方面考察
网工大题题型总结(1)-------网络安全方面考察
64 1
国家信息安全水平考试NISP一级理论真题答案2
国家信息安全水平考试NISP一级理论真题答案2
国家信息安全水平考试NISP一级理论真题答案1
国家信息安全水平考试NISP一级理论真题答案1
高职考技能提升教程010期 回文数(对称数)
高职考技能提升教程010期 回文数(对称数)
PAT-2021年秋季考试 乙级 7-5 取帽子 (25 分)
拼题er们觉得戴帽子会令自己看上去很帅,所以他们不管到哪里都会戴着帽子。
144 0