任意进制下的可逆素数是这样定义的:它自身是一个素数,当它转换为任意进制之后,把所有数字逆序,得到的新数字的值仍然是一个素数。比如,73在十进制下是一个素数,它在十进制下的逆37也是一个素数,那就称它是十进制下是一个可逆素数。 输入格式: 输入有多行,每行包括两个正整数,数N以及基R,其中N<100000, 1<D<=10, 遇到负数则退出。 输出格式: 对每一行输入,如果是可逆素数,则输出“Yes”,否则输出“No” C语言
时间: 2023-05-27 11:06:52 浏览: 92
#include <stdio.h>
#include <stdbool.h>
// 判断素数
bool is_prime(int num) {
if (num < 2) return false; // 小于2的数不是素数
for (int i = 2; i * i <= num; i++) { // 只需判断到sqrt(num)即可
if (num % i == 0) return false;
}
return true;
}
// 数字翻转
int reverse(int num, int base) {
int res = 0;
while (num) {
res = res * base + num % base;
num /= base;
}
return res;
}
int main() {
int n, r;
while (scanf("%d%d", &n, &r) == 2 && n >= 0) {
int rev_n = reverse(n, r);
if (is_prime(n) && is_prime(rev_n)) printf("Yes\n");
else printf("No\n");
}
return 0;
}
相关问题
8. 编写判断n 是否为素数的函数prime,如果n 为素数返回True ,否则返回False。输出10~99 中所有的可逆素数(所谓可逆素数,就是这个数本身是素数且它的逆序也是素数,如13 是素数,它的逆序31也是素数,则13是可逆素数)。输入:
以下是判断素数并输出可逆素数的Python代码:
python
def is_prime(num):
if num < :
return False
i in range(2, int(num0.5) + 1):
if num i == 0:
return False
True
def reverse_num(num):
return(str(num)[::-1])
def find_reversible_primes(start, end):
reversible_primes = []
num in range(start, end+1):
if is_prime(num) and is_prime(reverse_num(num)):
reversible_primes.append(num)
return reversible_primes
reversible_primes = find_reversible_primes(10, 99)
print(reversible_primes)
```
运行以上代码,将会输出在10~99范围内的所有可逆素数。
编写判断n是否为素数的函数prime,如果n为素数返回True,否则返回False. 输出10~99中所有的可逆素数(所谓可逆素数,就是这个数本身是素数且它的逆序也是素数,如13是素数,它的逆序31也是素数,则13是可逆素数)。 输入: 99 输出:可逆素数
抱歉,我可以回答您的第一个问题:以下是判断n是否为素数的函数prime。
```
def prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
```
根据您的要求,以下是10~99中的所有可逆素数:
```
13 17 31 37 71 73 79 97
```
希望能够满足您的需求。