python 用while输出一个整数判断他是否是素数
时间: 2023-09-16 19:14:23 浏览: 80
可以使用以下代码来判断一个整数是否是素数:
```python
num = int(input("请输入一个整数:"))
if num < 2:
print(num, "不是素数")
else:
i = 2
while i <= int(num ** 0.5):
if num % i == 0:
print(num, "不是素数")
break
i += 1
else:
print(num, "是素数")
```
代码中先判断用户输入的整数是否小于2,如果小于2则不是素数,直接输出结果。否则,使用 while 循环从2开始到num的平方根(向上取整),判断是否能整除。如果能整除,则不是素数,输出结果并跳出循环。如果没有跳出循环,说明这个数是素数,输出结果。
相关问题
Python用while if输入一个正整数,判断其是否是素数,如是素数,则输出Yes,否则输出No
好的,可以使用以下代码实现:
```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}$ 就可以判断是否为素数了。
输入一个正整数判断其是否为素数 用python中while解决
可以使用以下 Python 代码来判断一个正整数是否为素数:
```python
num = int(input("请输入一个正整数:"))
if num < 2:
print(num, "不是素数")
else:
i = 2
while i <= num // 2:
if num % i == 0:
print(num, "不是素数")
break
i += 1
else:
print(num, "是素数")
```
该程序首先获取用户输入的正整数,然后检查它是否小于2。如果是,它不是素数,否则它可能是素数。接下来,它使用一个 while 循环,从 2 开始逐个测试被检查数字的除数,直到检查到 num // 2。如果 num 能被 i 整除,则它不是素数,并且程序会输出相应的消息并退出循环。否则,如果循环正常完成,程序会输出一个消息表明 num 是素数。
阅读全文