用python写出一个判断素数的内置函数
时间: 2024-04-12 12:10:17 浏览: 107
下面是用 Python 编写的判断素数的内置函数:
```python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
```
这个函数接受一个参数 `num`,判断其是否为素数,如果是素数则返回 `True`,否则返回 `False`。在函数内部,首先判断 `num` 是否小于 2,如果是,则直接返回 `False`,因为任何小于 2 的数都不是素数。然后利用一个循环,从 2 开始遍历到 `num` 的平方根,如果在这个范围内发现 `num` 能够被整除,则说明 `num` 不是素数,返回 `False`。如果循环结束后都没有找到 `num` 能够被整除的因子,则说明 `num` 是素数,返回 `True`。
相关问题
解释写出输入自己的学号,把学号的前四位到[3]+后三位数,之间的素数找出来,并保存到文本以文件中
好的,我来解释一下这段代码的实现过程。
首先,我们使用Python内置的re模块,通过正则表达式匹配用户输入的学号。这里使用的正则表达式是\d{9},表示匹配9个数字。如果匹配成功,则提取出数字范围。如果匹配失败,则输出错误信息并退出程序。
```python
import re
sid_regex = r'\d{9}'
sid = input("请输入学号:")
match = re.match(sid_regex, sid)
if match:
num_range = range(int(sid[0:4]), int(sid[3:7]) + 1)
else:
print("输入的学号格式不正确!")
exit()
```
接下来,我们需要编写一个函数来判断一个数是否为素数。这里我们采用比较常见的方法,从2到根号下num枚举每个数,判断是否存在num的因子。如果存在,则num不是素数;否则,num是素数。
```python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
```
然后,我们使用一个for循环遍历数字范围,对每个数都进行一次判断。如果是素数,则将其添加到一个列表prime_list中。
```python
prime_list = []
for num in num_range:
if is_prime(num):
prime_list.append(num)
```
最后,我们将素数列表中的每个数都写入到文件prime_numbers.txt中。这里使用了Python的with语句,确保文件会被自动关闭。在with语句中,我们使用文件对象f的write方法,将每个素数都写入到文件中。注意,我们在每个素数后面都添加了一个换行符,这样可以确保每个素数都单独占据一行。
```python
filename = "prime_numbers.txt"
with open(filename, "w") as f:
for prime in prime_list:
f.write(str(prime) + "\n")
print("素数已保存到文件 %s 中!" % filename)
```
这样,我们就完成了题目要求的功能。如果您还有任何问题,欢迎随时提出。
阅读全文
相关推荐
















