#85. 判断一个数是不是素数(2~n早停法)

判断一个数是不是素数(2~n早停法)

题目背景

素数的定义是:如果数字 n 是素数,那么它只能被 1它本身 整除。即 素数只有两个因数

但是,无论任何数字 n 都能被 1n 整除,所以我们可以将范围缩小到:2n2 - n。然后在这个范围内一旦再有一个因数出现,那么这个因数已经是第3个(因为已经存在 1n 两个),这时就可以直接停止判断,得出结论:不是素数

如果,从 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 的范围是:2<=n<=10000002 <= n <= 1000000