c语言 输入一个大于3的整数n,判定它是否为素数。为什么只需使n被2~根号n之间的整数除即可判定

2025-04-14 17:57:14
推荐回答(3个)
回答1:

你说反了,是不能被2~根号n之间的任何一个整数整除才是素数
若n=a*b=根号n*根号n,那么如果a>根号n,则b肯定小于根号n,,所以只需检测到根号n,剩下的大的一半一定已经检测过了,当然你一直检测到n也行,就是浪费了时间

回答2:

设有非素数n,那么 n = a * b (a,b为大于等于2的整数) 必然有解,否则为素数,这没错吧。

如果 n = a * b,而且a > 根号n,由n = 根号n * 根号n可知,b必然小于根号n,反之亦然。

也就是说,对于任何符合n = a* b的一组解,a 与 b 必然有一个是小于根号n的。

回答3:

因为根号n是n最大的因数,2是n最小的因数