链接:https://ac.nowcoder.com/acm/contest/19859/C 来源:牛客网 现在给出一个素数,这个素数满足两点: 1、 只由1-9组成,并且每个数只出现一次,如13,23,1289。 2、 位数从高到低为递减或递增,如2459,87631。 请你判断一下,这个素数的回文数是否为素数(13的回文数是131,127的回文数是12721)。
时间: 2023-02-07 16:15:44 浏览: 174
输入一个数,并判断它是否为素数
3星 · 编辑精心推荐
这道题目要求你判断一个给定的数字是否为素数,并且这个数字的回文数也是素数。
首先,你需要编写代码来判断一个数字是否为素数。可以使用较为简单的算法,如暴力枚举法,来判断一个数字是否为素数。
然后,你需要编写代码来获取一个数字的回文数。可以使用字符串操作的方法,将数字转换为字符串,然后将字符串反转,再将反转后的字符串转换回数字。
最后,你需要判断这个数字的回文数是否为素数。如果是,则输出"YES";否则输出"NO"。
示例代码如下:
```
bool is_prime(int n) {
// 判断数字n是否为素数
if (n < 2) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
int reverse(int n) {
// 获取数字n的回文数
string s = to_string(n);
reverse(s.begin(), s.end());
return stoi(s);
}
int main() {
int n;
cin >> n;
if (is_prime(n) && is_prime(reverse(n))) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
}
```
阅读全文