VB输入一个数,找大于它的最小质数.急用急用

发布网友 发布时间:2024-10-23 16:39

我来回答

3个回答

热心网友 时间:2024-10-25 14:30

根据你的要求,写了一个程序
希望对你有所帮助
原理是:检察大于该输入数lngX的lngN与[2,lngN-1]内的数相除取余.
如果期间有整除发生,就是标记blnZS=TRUE跳出循环,说明它不是质数,否则循环完成后发现blnZS=false说明未发生整除,说明它是质数
Private Sub Command1_Click()
On Error Resume Next
Dim lngN As Long, lngM As Long, lngX As Long, blnZS As Boolean
lngX = CLng(InputBox("请输入一个 >1 的整数" & vbCr & "注意我将不作进一步的检察"))
lngN = lngX + 1
If lngN = 2 Then MsgBox LGNX & "后的最小质数是: 2": Exit Sub
Do
blnZS = True '初始化为是质数
For lngM = 2 To lngN - 1 'lngN=2时不循环
If lngN Mod lngM = 0 Then
blnZS = False '如果能被大于2小于本身-1的数整除,说明不是质数
Exit For
End If
Next
If blnZS Then MsgBox LGNX & "最小质数是: " & lngN: Exit Sub
lngN = lngN + 1
Loop
End Sub

热心网友 时间:2024-10-25 14:30

在窗体上画个文本框TEXT1,multi属性改为TRUE

Private Sub Form_Load()
Dim ArrayInt() As Integer
Dim CheckNum As Integer
Dim PrimeNo As Integer
CheckNum = Val(InputBox("输入一个数", "质数判断"))
PrimeNo = 1
ReDim Preserve ArrayInt(PrimeNo) As Integer
ArrayInt(1) = 2
For j = 3 To CheckNum
Flag = j
For I = 1 To PrimeNo
If (j Mod ArrayInt(I) = 0) Then
Flag = j - 1
Exit For
End If
Next I
If (Flag = j) Then
PrimeNo = PrimeNo + 1
ReDim Preserve ArrayInt(PrimeNo)
ArrayInt(PrimeNo) = j
End If
Next j
Text1.Text = ""
Text1.Text = Text1.Text & "在" & CheckNum & "之内的质数共有" & PrimeNo & "个,分别为" + vbCrLf
For I = 1 To PrimeNo
Text1.Text = Text1.Text & I & "th " & ArrayInt(I) & vbCrLf
Dim Message As String
Message = Str(CheckNum)
If (CheckNum = ArrayInt(I)) Then
Message = Message & " 是质数"
Else
Message = Message & " 不是质数!"
End If
Next I
MsgBox Message, vbOKOnly, "质数判断"

End Sub

热心网友 时间:2024-10-25 14:31

dim loopover as boolean
loopover=false
dim int1 as integer
int1=val(textbox1.text)
do until loopover
int1 +=1
dim i as integer
for i=2 to int1
if int1 mod i=0 and i=int1 then
loopover=true
end if
next i
loop
print int1
试试吧

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com