[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函数,如果是绝对素数则输出。

目录
相关文章
|
5月前
acwing 5408 保险箱
acwing 5408 保险箱
39 1
|
9月前
|
机器学习/深度学习 存储
[GESP样题 四级] 填幻方和幸运数
[GESP样题 四级] 填幻方和幸运数
98 1
|
9月前
|
资源调度 5G 调度
【5G大唐杯】——5G考试等级考考试基础试题(一)
【5G大唐杯】——5G考试等级考考试基础试题(一)
288 1
|
10月前
|
安全 算法 网络安全
国家信息安全水平考试NISP一级理论真题答案1
国家信息安全水平考试NISP一级理论真题答案1
|
10月前
|
安全 算法 网络安全
国家信息安全水平考试NISP一级理论真题答案2
国家信息安全水平考试NISP一级理论真题答案2
|
10月前
|
C语言
(浙大版《C语言程序设计(第3版)》 习题6-5 使用函数验证哥德巴赫猜想 (20分)
(浙大版《C语言程序设计(第3版)》 习题6-5 使用函数验证哥德巴赫猜想 (20分)
|
人工智能
[蓝桥杯 2018 省 B] 乘积最大
[蓝桥杯 2018 省 B] 乘积最大
59 0
|
人工智能 算法 BI
[蓝桥杯 2018 省 A] 付账问题 贪心题
[蓝桥杯 2018 省 A] 付账问题 贪心题
120 0
|
人工智能 测试技术
贪心: [蓝桥杯 2020 国 ABC] 答疑
贪心: [蓝桥杯 2020 国 ABC] 答疑
112 0
|
人工智能 Java 测试技术
试题 历届真题 完全二叉树的权值【第十届】【省赛】【A组】
试题 历届真题 完全二叉树的权值【第十届】【省赛】【A组】