代码:
Private Sub Command1_Click()
Me.Cls
Dim yn As Boolean '为真表示是素数
Dim i As Integer, j As Integer, x As Integer
For i = 1 To 100
yn = True '为真表示是素数,否则就不是,先默认为是素数
For j = 2 To i - 1 '素数要大小1,所以循环从2开始,素数不包括本身,所以循环终值减小1
If i Mod j = 0 Then yn = False '如果能整除就不是素数
Next j
If yn = True Then Print i; '如是素数,就在窗体上输出素数
Next i
End Sub
运行效果:
print用法
print(x,y)
等价于
import sys
sys.stdout.write(str(x)+''+str(y)+'\n')
从语法上讲,调用python3.0的print函数有如下的形式:
print([object,...][,seq=''][,end='\n'][,file=sys.stdout])
seq是在每个对象的文本之间插入一个字符串,如果没有桩底的话,它默认是一个单个空格,传递一个空字符串将会一直分隔符
end是添加在打印文本末尾的一个字符串,如果灭有传递的话,它默认的是一个\n换行字符。传递一个控制符串将会避免在打印的文本的末尾移动到下一个输入行-----下一个print将会保持添加到当前输出行的末尾。
file指定了文本将要发送到的文件、标准流或者其他类似文件的对象;如果没有传递的话,它默认的是sys.stdout。带有一个类似文件的write(string)方法的任何对象都可以传递,但真正的文件应该已经为了输出而打开。
具体是这样子的:
从For i = 1 To 100到next i这是一个完整的for循环,而For j = 2 To i - 1到next j是一个内层循环,外层循环用来控制数字是几,就是1到100么,内层是x当作标记来看,给他附初值,0,然后开始内层循环就是那个 j 循环,开始判断素数,什么时素数?就是不能被1和他本身整除的数字,就是素数,这样可以设置最大循环判断的那个数字是比她小的,其实可以改为i/2,也是对的,甚至是sqr(i)也可以,x是一个标志,如果可以被一个数字整除,那么x就不是1了,再循环结束的时候进行判断,如果还是0,那么说明是素数,在窗体上输出,如果不是0,就不是素数了呗,什么也不做,进行下一个循环!
纯手打……不含假……不懂追问我,谢谢
望采纳,谢谢
Private Sub Form_Click()
Dim i As Integer, j As Integer, x As Integer
For i = 1 To 100
x = 0 ‘i是素数的标记
For j = 2 To i - 1 ‘如在此范围内都不能整除,i就是素数
If i Mod j = 0 Then x = 1 ‘如整除了,就不是素数
Next j
If x = 0 Then Print i ’如是素数,就输出i
Next i
End Sub
Private Sub Form_Click() //单击窗体运行该事件
Dim i As Integer, j As Integer, x As Integer //变量声明
For i = 1 To 100 //遍历1至100
x = 0 //x为储存判断结果,X为0为素数,为1非素数
For j = 2 To i - 1 //从2开始到i-1
If i Mod j = 0 Then x = 1 //判断是否为素数,把i从2开始除到比i小1,如果被整除非素数,x置1,Mod是求余数,等于0就意味着整除
Next j
If x = 0 Then Print i //如果一直没有被整除那么就输出结果
Next i
End Sub
Private Sub Command1_Click()
Dim f As Boolean
For i = 3 To 100
f = False
For j = 2 To i - 1
If i Mod j = 0 Or (i + 2) Mod j = 0 Then
f = True: Exit For
End If
Next j
If f = False Then
List1.AddItem i & "," & (i + 2)
End If
Next i
End Sub
这个是不需要定义函数的,比较适合初学者