本文主要是介绍【每日一题】YACS P11:双质数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
这是上海计算机学会竞赛 P 11 P11 P11:双质数( 2020 2020 2020年 3 3 3月月赛 丙组 T 3 T3 T3)
标签:质数
题意:给定一个区间范围 [ a , b ] [a,b] [a,b],输出这个范围内所有的双质数(双质数指本身是质数,且去掉它个位数之后依旧是质数的数),如果一个都没有输出 N o n e None None。( 1 < = a < = b < = 1 0 6 , b − a < = 2 ⋅ 1 0 5 1<=a<=b<=10^6,b-a<=2⋅10^5 1<=a<=b<=106,b−a<=2⋅105)
解决方案
题解: 直接枚举区间 [ a , b ] [a,b] [a,b],对区间内每个数和去掉它的个位数的数,做质数判定,做一个 f l a g flag flag标记,判定一个都没有的情况。
代码:
#include <bits/stdc++.h>
using namespace std;bool check(int x) { // 质数判定if (x <= 1) return 0;for (int i = 2; i * i <= x; i++) {if (x % i == 0) return 0;}return 1;
}int main() {int a, b, f = 0;cin >> a >> b;for (int i = a; i <= b; i++) {if (check(i) && check(i / 10)) {cout << i << endl;f = 1;}}if (f == 0) cout << "None";return 0;
}
这篇关于【每日一题】YACS P11:双质数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!