python求幸运素数
时间: 2023-12-20 16:50:20 浏览: 28
幸运素数是指一个素数,在它的十进制表示中,每一位数字都是7或者是它的倍数。以下是一个简单的 Python 代码来寻找幸运素数:
```python
def is_prime(n):
"""判断一个数是否为素数"""
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def is_lucky(n):
"""判断一个数是否为幸运数"""
for c in str(n):
if c != '7' and n % int(c) != 0:
return False
return True
n = 7 # 从7开始寻找幸运素数
while True:
if is_prime(n) and is_lucky(n):
print(n)
break
n += 2 # 只需要判断奇数
```
该代码首先定义了两个函数 `is_prime` 和 `is_lucky`,分别用于判断一个数是否为素数和幸运数。然后从 7 开始,每次递增 2,寻找幸运素数。如果找到了,就输出该数并结束程序。
相关问题
如果一个数本身是素数,并且把最低位删除后得到的数仍是素数、再把最低位删除后得到的数仍是素数.....如此往复,直到得到一个一位素数,我们就称它是“幸运素数”用python求幸运素数
以下是求幸运素数的 Python 代码:
```python
def is_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
def is_lucky_prime(n):
while n >= 10:
if not is_prime(n):
return False
n = int(str(n)[:-1])
return is_prime(n)
for i in range(10, 100000):
if is_lucky_prime(i):
print(i)
```
这个程序的思路是先定义两个函数 `is_prime(n)` 和 `is_lucky_prime(n)`,分别用于判断一个数是否是素数和是否是幸运素数。其中,`is_prime(n)` 函数采用了试除法,判断一个数 `n` 是否为素数。`is_lucky_prime(n)` 函数则先判断当前数 `n` 是否为素数,如果是,则将 `n` 的最低位删除,继续判断新的数是否为素数,直到得到一个一位素数或者中途出现了非素数,这时就返回 False。如果一直判断到最后得到了一个一位素数,那么就返回 True,表示当前数是幸运素数。
最后,我们在主程序中从 10 开始,不断枚举整数,判断它们是否为幸运素数,如果是,就输出这个数。
Python求纯粹素数
以下是使用Python编写的求100以内素数的代码:
```python
for i in range(2, 101):
flag = True
for j in range(2, i):
if i % j == :
flag = False
break
if flag:
print(i)
```
代码解释:
1. 使用`for`循环遍历2到100之间的所有数字。
2. 定义一个布尔变量`flag`,初始值为`True`,表示当前数字是素数。
3. 使用内层`for`循环遍历2到当前数字之间的所有数字。
4. 如果当前数字可以被内层循环中的任意一个数字整除,则说明当前数字不是素数,将`flag`设为`False`,并跳出内层循环。
5. 如果内层循环结束后`flag`仍为`True`,则说明当前数字是素数,将其输出。