vb 求100以内的素数

vb 求100以内的素数怎么填空,我填的不对

代码:

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)方法的任何对象都可以传递,但真正的文件应该已经为了输出而打开。



温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-08
for n=2 to 100
    for k=2 to n-1
        if n mod k=0 then exit for 
    next k
    if k=n then
        st=st % right(" " & str(n),3)
        js=js+1
        if js mod 5=0 then vbcrlf
    end if 
next n
txtpn.text=st

追问

vbcrlf 属性的使用无效

追答

改成 st=st & vbcrlf

追问

这行缺少结束语句

好了,但是结果只有2

你的程序算出来的是非素数

改成素数

追答

追问

vbvrlf

没有换行

追答Private Sub Command1_Click()
Dim n As Integer, k As Integer, js As Integer, st As String
For n = 2 To 100
    For k = 2 To n - 1
        If n Mod k = 0 Then Exit For
    Next k
    If k = n Then
        st = st & Right(" " & Str(n), 3)
        js = js + 1
        If js Mod 5 = 0 Then st = st & vbCrLf
    End If
Next n
Text1.Text = st
End Sub

本回答被提问者和网友采纳
第2个回答  2022-03-01
Private Sub Command1_Click()
Dim a, s, i
For i = 2 To 100
a = True 为真表示素数
For s = 2 To i - 1 1 和素数本身不是素数
If i Mod s = 0 Then 如果余数等于0则表示不是素数
a = False 则a为假
Exit For
End If

Next s
If a = True Then Print i 如果a为真,则打印出来

Next

End Sub