描述 输入一个正整数n(10<n<10000)n(10<n<10000),输出不超过n的最大超级质数。(要求使用子函数实现) (超级质数含义:输入一个正整数n,如果该数本身是质数,依次从低位去掉一位,二位,……,若所得的各数仍都是素数,则称超级质数。) 题目保证有不超过n的最大超级质数 输入
时间: 2023-11-29 13:04:54 浏览: 149
这道题可以使用一个is_prime()函数来判断一个数是否为质数,然后再使用一个函数check_super_prime()来判断一个数是否为超级质数。最后从n开始递减遍历所有数,找到第一个超级质数即可。
代码如下:
```python
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
def check_super_prime(num):
digits = str(num)
for i in range(len(digits)):
if not is_prime(int(digits[i:])):
return False
return True
n = int(input("请输入一个正整数n(10<n<10000):"))
for i in range(n, 10, -1):
if is_prime(i) and check_super_prime(i):
print("不超过n的最大超级质数为:", i)
break
```
输入样例:
```
请输入一个正整数n(10<n<10000):1000
```
输出样例:
```
不超过n的最大超级质数为: 733
```
阅读全文