率土之滨五连五个五:这段vb程序是什么意思?很短的.

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 07:38:20
Private Sub Form_Click()
For i = 1 To 100
k = 1
For j = 2 To i / 2
If i Mod j = 0 Then k = 0
Next j
If k = 1 Then Print i
Next i
End Sub

这里定义的k是什么意思啊?
最好能把每一句都解释一下.谢谢.
前面的k和后面的k各有什么用啊

这里的k是一个flag标志
它的作用是标识i是不是被j整除
翻译:
当窗体form被单击,那么执行:
i循环从1到100共一百次
每次:
先初始k为1
循环j直 i/2-2次
如果i可以被j整除,那么k=0
循环j
如果k还是等于1说明在本次循环内i不被j整除,所以打印出i的值
循环i
窗体事件结束
所以这个程序的功能是查找100以内的所有素数
素数就是除了1和它本身外,没有任何数可以整除它的数

K是记录是否为质数的标志

i/2是50以后的数,2倍的肯定不是质数,i/2后面的不用验了
如果i整除j为0,则是倍数记录这个数的标志为0(k=0),如果不是就还为1(K=1),所以到最后打印K=1时的那些数

你可以具体带进去几个数看看

觉得好象是在求100以内的质数

k记录前面循环的结果,后面的判断语句用k的值作为条件判断是否打印当前的i