求教几道VB题*高悬赏,速度快的多加100分

1,编写一个SUB过程,给一个整数N,N大于等于3,判定是否为素数
2.编写一个FUNCTION过程,求两个正整数,M,N的最大公约数
3.编写一个SUB过程,求三个数字的最大和最小数
4.求S等于a+aa+aaa+....+N个a,a和N的只由用户输入
5.求13 27 33 的最小公倍数
6.输入20个数字,显示其中奇数个数和偶数个数

1:
Private Sub sushu()
Dim N%, i%, k%
N = Val(InputBox("请输入一个大于2的整数N:"))
k = Int(Sqr(N))
For i = 2 To k
If N Mod i = 0 Then Exit For
Next i
If i > k Then
Print N; "是素数"
Else
Print N; "不是素数"
End If
End Sub

Private Sub Form_Click()
Call sushu
End Sub

2:
Private Function fun()
Dim M As Integer, N As Integer, p As Integer, max As Integer, min As Integer
Me.Cls
M = Val(InputBox("请输入M:"))
N = Val(InputBox("请输入N:"))
max = IIf(M > N, M, N)
min = IIf(M < N, M, N)
Do
p = max Mod min
max = min
min = p
Loop While (p <> 0)
Print "最大公约数为"; Str(max)
End Function

Private Sub Form_Click()
Call fun
End Sub

3:
Private Sub compare()
Dim a%, b%, c%, max%, min%
Me.Cls
a = Val(InputBox("Enter a:"))
b = Val(InputBox("Enter b:"))
c = Val(InputBox("Enter c:"))
max = a
If b > a And c < b Then max = b
If c > a And b < c Then max = c
Print "最大数是:"; max
min = a
If b < a And c > b Then min = b
If c < a And b > c Then min = c
Print "最小数是:"; min
End Sub

Private Sub Form_Click()
Call compare
End Sub
4:
Private Static Function sum(a As Integer) As Single
Dim s As Single
s = s * 10 + a
sum = s
End Function

Private Sub Form_Click()
Dim s As Single, a As Integer, i As Integer, N As Integer
a = Val(InputBox(" 输入一小于是10的正整数"))
N = Val(InputBox(" 输入一正整数N"))
For i = 1 To N
s = s + sum(a)
Print "S" & i & "="; s
Next i
End Sub
5:
Public Function MinMul公倍数(ParamArray pa()) '求出多个数的最小公倍数
Dim X As Long, Y As Long, K As Long, 最大公约数 As Long, 最小公倍数 As Long
Dim I As Integer
For I = LBound(pa) To UBound(pa) - 1
X = IIf(pa(I) >= pa(I + 1), pa(I), pa(I + 1)) 'x存入最大值
Y = IIf(pa(I) <= pa(I + 1), pa(I), pa(I + 1)) 'y 存入最小值
Do '辗转相除法求出最大公约数
K = X Mod Y: If K = 0 Then Exit Do
X = Y: Y = K
Loop
最大公约数 = Y
最小公倍数 = pa(I) * pa(I + 1) / 最大公约数
pa(I + 1) = 最小公倍数
Next
MinMul公倍数 = pa(I)
End Function
6:
Private Sub Form_Click()
Dim a() As Integer, b() As Integer ' 声明两个可变数组
Dim os%, js%, n%, i%
n = Val(InputBox("输入一个,输入-1结束"))
Do While n <> -1 ' 当输入-1时结束
If n Mod 2 = 0 Then ' 判断是不是偶数
os = os + 1
ReDim Preserve a(os) ' 重新定义数组a的大小,并存持原来的值
a(os) = n
Else
js = js + 1
ReDim Preserve b(js)
b(js) = n
End If
n = Val(InputBox("输入一个,输入-1结束"))
Loop
Print "输入的偶数有:"
For i = 1 To os
Print a(i); Spc(2);
If i Mod 10 = 0 Then Print ' 输出10个数据后换行
Next i
Print
Print "输入的奇数有:"
For i = 1 To js
Print b(i); Spc(2);
If i Mod 10 = 0 Then Print
Next i
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-01-13
1,编写一个SUB过程,给一个整数N,N大于等于3,判定是否为素数
Sub Isu()
Dim t1 As Long,Number as Long
Nubmer = Val(Inputbox("Please Input a Number"))
t1 = Fix(Sqr(Number))
For i = 2 To t1
If Number Mod i = 0 Then GoTo 10
Next i
MsgBox Number & "是素数!"
Exit Sub
10
MsgBox Number & "是合数!"
End Sub

2.编写一个FUNCTION过程,求两个正整数,M,N的最大公约数
Function GetYue(ByVal Number1 As Long, ByVal Number2 As Long) As Long
'Number1 和 Number2是要计算最大公约数的数
Dim t1 As Long, t2 As Long, t3 As Long
t1 = IIf(Number1 <= Number2, Number1, Number2)
For i = 1 To t1
If Number1 Mod i = 0 And Number2 Mod i = 0 Then t2 = i
Next i
GetYue = t2
End Function

3.编写一个SUB过程,求三个数字的最大和最小数

Sub Sort3()
Dim max As Long, a(2) As Long, Mini As Long, temp As Long
For i = 0 To 2
a(i) = Val(InputBox("请输入第" & i + 1 & "个数"))
Next i
For i = 0 To 2
If a(i) > max Then max = a(i)
Next i
Mini = max
For i = 0 To 2
If a(i) < Mini Then Mini = a(i)
Next i
MsgBox "最大的是" & max & " 最小的是" & Mini
End Sub

4.求S等于a+aa+aaa+....+N个a,a和N的只由用户输入
Function GetV() As Long
Dim a As Byte, N As Long, str As String, sum As Long
a = Val(InputBox("请输入一个数字"))
N = Val(InputBox("请输入最高位数"))
For i = 1 To N
str = str & "1"
sum = sum + Val(str)
Next i
sum = sum * a
GetV = sum
End Function

5.求13 27 33 的最小公倍数

Function GetNum() As Long
Dim n(1 To 3) As Long, Ret As Long, temp As Long, tempa As Long
n(1) = 13: n(2) = 27: n(3) = 33: Ret = 1
For i = 1 To n(1)
If n(1) Mod i = 0 And n(2) Mod i = 0 Then tempa = i
Next i
tempa = n(1) * n(2) / tempa
For i = 1 To tempa
If tempa Mod i = 0 And n(3) Mod i = 0 Then temp = i
Next i
Ret = tempa * n(3) / temp
GetNum = Ret
End Function

6.输入20个数字,显示其中奇数个数和偶数个数

Sub GetJO()
Dim a(1 To 20) As Long, o As Integer, j As Integer
For i = 1 To 20
a(i) = Val(InputBox("请输入数"))
If a(i) Mod 2 = 0 Then
o = o + 1
Else
j = j + 1
End If
Next i
Erase a
MsgBox "奇数" & j & "个 偶数" & o & "个"
End Sub

收工!!!!如果需要可通用的代码,可以接着帮你写!!
相似回答