关于素数程序,请高人指点下

来源:百度知道 编辑:UC知道 时间:2024/06/24 12:15:44
Dim N %, I%, K%
N = Val(InputBox("N=?"))
K= Int(Sqr(N))
For I = 2 To K
If N Mod I = 0 Then Exit For
Next I
If I>K Then
Print N; " 是素数"
Else
Print N; " 不是素数"
End If
当n取7的时候,k的值为2,当执行到If I>K Then 时就是2>2,应该执行else下面的语句,可是程序运行的结果是“7是素数”。请问这是为什么?
以上问题都作废,我想问的是For I = 2 To K ,其中k的值为什么去n的平方根?

因为一个数的因数最大也不会超过它的平方根,不是吗?因此没有必要都验证一遍,只需验证到它的平方根就行。

用穷举法吧!上面说的不行啊,想想,当N=49时,K=7,当循环体执行到I=K时跳出循环,此时7>=7,岂不是打印出49是素数?

试试2>=2,估计是这个问题