求100-350中的所有素数,输出在窗体,再求这些素数中个位十位百位,如果三位都是素数,则输出在窗体,大佬们求算法求算法求算法!
另外还有两个小问题,inputbox返回给变量的值,如果不定义变量的数据类型,默认情况下是什么数据类型?定义了数据类型,如整形,那么这个返回的值是否就是整形?
最后一个问题是val返回的是什么数据类型?如果直接给变量定义数值数据类型、能不能进行计算?
(目前在中专/-/自己摸索学太难了,求大佬解答)
求100-350中的所有素数,输出在窗体,再求这些素数中个位十位百位,如果三位都是素数,则输出在窗体,大佬们求算法求算法求算法!
另外还有两个小问题,inputbox返回给变量的值,如果不定义变量的数据类型,默认情况下是什么数据类型?定义了数据类型,如整形,那么这个返回的值是否就是整形?
最后一个问题是val返回的是什么数据类型?如果直接给变量定义数值数据类型、能不能进行计算?
(目前在中专/-/自己摸索学太难了,求大佬解答)
Option Explicit
Private Sub Command1_Click()
Call Prime(100, 350)
End Sub
Private Sub Prime(s As Integer, e As Integer)
Dim data() As Integer
ReDim Preserve data(e) As Integer
Dim II As Integer, JJ As Integer
For II = 0 To e
If II < 2 Then
data(II) = 0
Else
data(II) = 1
End If
Next II
For II = 0 To Int(Math.Sqr(e))
If II > 1 Then
If data(II) = 1 Then
For JJ = 0 To UBound(data)
If JJ > II And JJ Mod II = 0 Then
data(JJ) = 0
End If
Next JJ
End If
End If
Next II
For II = 0 To UBound(data)
If II < e + 1 And II > s - 1 And data(II) = 1 Then
List1.AddItem II
If getPrime(II) = True Then
List2.AddItem II
End If
End If
Next II
End Sub
Private Function getPrime(n As Integer) As Boolean
getPrime = False
If InStr("2357", Mid(n, 1, 1)) > 0 Then
If InStr("2357", Mid(n, 2, 1)) > 0 Then
If InStr("2357", Mid(n, 3, 1)) > 0 Then
getPrime = True
Exit Function
End If
End If
End If
End Function