用python写出一个判断素数的内置函数
时间: 2024-04-12 17:10:17 浏览: 101
下面是用 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模块,通过调用re.match方法进行匹配。如果匹配成功,则提取出数字范围。
```python
sid_regex = r'\d{9}' # 学号正则表达式,匹配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()
```
接下来,定义一个判断素数的函数is_prime。这里采用了比较常见的方法,即从2到根号下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
filename = "prime_numbers.txt"
with open(filename, "w") as f:
for prime in prime_list:
f.write(str(prime) + "\n")
print("素数已保存到文件 %s 中!" % filename)
```
以上就是这段代码的实现过程和思路。如果您还有其他问题或疑问,欢迎随时提出。
阅读全文