【发布时间】:2021-12-02 15:11:38
【问题描述】:
我知道这是一个非常重复的问题,但我想了解是否可以通过检查它是否可被 2、3、5 或 7 整除来简单地检查一个大整数(例如 157,632,829),或者我错过了极端情况吗?
即。
if (n < 4) :
return True
if (n % 2 == 0 or n % 3 == 0 or n % 5 == 0 or n % 7 == 0) :
return False
【问题讨论】:
-
是的,
11 * 13怎么样 -
17 * 19怎么样 -
你必须检查所有素数直到
sqrt(num) -
素数很频繁,你会有很多数字要检查,否则你会有
23*31、29*101、1999*2003等cunterexamples -
如果您要实施 Miller-Rabin 检验,请记住它决定 可能 素性,因此不是确定性