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

















