任务描述
素数是指在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。
本关任务:判断给定的整数是否是素数。
相关知识
想要完成本关任务,我们可以直接使用 while 循环。本关介绍的是 break 语句,break 语句可以提前结束循环,当循环达到我们的目的时,可以很大程度的提高代码的执行效率。
break 语句
在之前学习 while 循环时,如果我们在执行语句中不改变表达式的结果,那么代码将进入无限循环;若是我们无法在执行语句中改变表达式结果呢?这时我们就可以使用 break 语句。break 语句是用于结束当前循环。
假设老师想求一个班上 5 名同学的平均成绩,分数都是通过 input 函数获取,分数的取值范围为 0-100,假设老师输入时不小心输入了一个超出范围的值,这时,我们就可以通过 break 语句来结束循环。
num = 0
sum_score = 0
while num < 5:
score = int(input()) # 每循环一次就输入一个值
if score < 0 or score > 100: # 如果输入的分数小于0或大于100就退出循环
print("输入的数据不合法,请重新输入")
break
sum_score += score
if num == 4: # num=4的时候表示分数都输入完成,可以计算平均分
mean_value = sum_score/5
print("平均成绩为",mean_value)
num += 1
输入数据1:
50
66
906
100
88
执行结果1:
输入的数据不合法,请重新输入
输入数据2:
50
66
90
100
88
执行结果2:
平均成绩为 78.8
当发生循环嵌套时,break 语句只能结束当前循环。
num = 1
while num < 4:
print("第一次循环")
# 正常情况下,表达式为True,第二层循环会无限循环,但是break语句让第二层循环只执行了一次
while True:
print("第二层循环")
break
num += 1
执行结果:
第一次循环
第二层循环
第一次循环
第二层循环
第一次循环
第二层循环
通过结果可以得知,break 每次都是结束当前的第二次循环,并没有结束它的上一级循环。
for 循环中也可以使用 break 语句,它也只能结束当前的 for 循环。
for x in range(5):
if x > 2:
break
print(x)
执行结果:
0
1
2`
n = int(input())
if n < 2 and n > 0 : #判断是否大于1的整数,且1不是素数
print("不是素数")
elif n > 2:
for i in range(2,n):
if n % i == 0: #判断2——i是否有能被整除
print("不是素数")
break
else:
print("是素数")
else :
if n==0:
print ('输入数据不合法')