Python用while if输入一个正整数,判断其是否是素数,如是素数,则输出Yes,否则输出No
时间: 2024-03-18 18:41:13 浏览: 154
好的,可以使用以下代码实现:
```python
num = int(input("请输入一个正整数:"))
if num < 2:
print("No")
else:
i = 2
is_prime = True
while i <= num ** 0.5:
if num % i == 0:
is_prime = False
break
i += 1
if is_prime:
print("Yes")
else:
print("No")
```
代码的解释如下:
1. 首先,通过 `input()` 函数获取用户输入的正整数,并使用 `int()` 函数将其转换为整数类型。
2. 如果输入的数小于 2,则直接输出 "No",因为小于 2 的数不是素数。
3. 否则,我们使用一个整型变量 `i` 和一个布尔型变量 `is_prime`。其中 `i` 用于遍历 2 到 $\sqrt{n}$ 的所有数,而 `is_prime` 用于记录当前的数是否是素数,初值为 True。
4. 使用一个 while 循环,当 `i` 小于等于 $\sqrt{n}$ 时继续循环。在循环体内,我们首先判断当前的数是否是 num 的因子,如果是,则将 `is_prime` 设为 False,并跳出循环;否则将 `i` 加 1 继续循环。
5. 最后,根据 `is_prime` 的值输出 Yes 或 No。
注意:在第 4 步中,我们使用了一个小技巧来遍历到 $\sqrt{n}$,即使用 `num ** 0.5` 来代替 $\sqrt{n}$。这是因为,如果一个数不是素数,那么它一定可以分解为两个因子,其中至少一个小于或等于 $\sqrt{n}$。因此,我们只需要遍历到 $\sqrt{n}$ 就可以判断是否为素数了。
阅读全文