For i = 2 To n - 1
If n Mod i = 0 Then Text2.Text = n &"不是素数": Exit For
Next i
分析说起;
For i = 2 To n - 1
就是 i 从2开始,逐步递增1,循环到 n - 1 结束,中间每一次循环通过 If 语句一 一 判断。
循环里,执行 If 语句
If n Mod i = 0 Then Text2.Text = n &"不是素数": Exit For
注意到,这里有退出循环的语句Exit For
从而,最后循环结束有两种可能;
1,只要有 i 能整除 n,循环就执行Exit For使得循环结束;此时i<=n - 1
2,所有的 i 都不能整除 n,这样结束循环的时候;i >= n - 1
所以,在最后根据是否能满足i >= n - 1,来确定 n 是不是素数。
素数的定义:只能被1和自身整除的自然数,叫做素数.利用这个素数的特征,判断一个自然数N是否素数的方法:就用2,3,4,.,N-1这些自然数,一一地去除该自然数N,若过所有这些都不能整除那么N是素数,只有有一次整除N就不是素数.
你的程序里,是有一个数组a,该数组有100个元素,分别为a(1),a(2),...a(100),假设已经存有不同的自然数.现在是判断这100个自然数里有几个素数,如果是素数就保存到另一个数组 b里.
For k = 1 To 100 '构成循环1到100对100个元素,一一进行判断
flag = True '设置标记,假设该自然数为可以被I整除
i = 2 '从2开始去除某个自然数a(k)
'为了提好效率,整除到Int(a(k)/2),(即a(k)的一半)不要到a(i)-1,这个结论数学上有证明
'记得,整除到Int(Sqr(a(i))),效率更高,这个数学上也有证明
Do While i
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)