#85. 判断一个数是不是素数(2~n早停法)
判断一个数是不是素数(2~n早停法)
题目背景
素数的定义是:如果数字 n 是素数,那么它只能被 1 和 它本身 整除。即 素数只有两个因数。
但是,无论任何数字 n 都能被 1 和 n 整除,所以我们可以将范围缩小到:。然后在这个范围内一旦再有一个因数出现,那么这个因数已经是第3个(因为已经存在 1 和 n 两个),这时就可以直接停止判断,得出结论:不是素数。
如果,从 2 开始,到 n 结束,都没有找到第三个因数,那么,数字 n 就是素数。
题目提示
需要使用 for-else 结构,它的逻辑是:如果 for 循环被正常执行完(即没有被break掉),那么就会进 else 分支。如下面的代码所示:
for i in range(xx, xx):
if xxxx:
print("被提前终止了!")
break
else:
print("for正常执行完了!")
上述代码的含义是:如果
for循环中的if语句一次都没有成立,则会进for-else结构中的else分支;否则,不会进这个分支。
⚠️请注意
else是和for搭配的(对齐的),而不是和if。
题目描述
输入一个整数,判断这个数字是不是素数。如果是的话,打印 True ,否则打印 False。
题目格式
输入
一个整数 n。
输出
True 或者 False,取决于输入的整数 n 是不是素数。
题目样例
5
True
10
False
题目限制
1、程序应在 1 秒内计算出结束。
2、输入的整数 n 的范围是: