
用VB设计: 找出1000之内的所有完数。完数就是这样一个整数,它恰好等于它的因子之和。
2个回答
展开全部
Option Explicit
Private Sub Command1_Click() '这是调用部分,打印出1000内的所有完数
Dim j As Integer
For j = 2 To 1000
If IsPerfectNumber(j) Then Print j
Next
End Sub
Function IsPerfectNumber(n As Integer) As Boolean '这是判断是否为完数
Dim i As Integer, fact As Integer, sqrt As Integer, sum As Integer
If n < 2 Then Exit Function
sqrt = Int(Sqr(n))
sum = 1
For i = 2 To sqrt '只需算到开方为止
fact = n \ i
If fact = n / i Then '如果被i整除,则fact也是因子
sum = sum + fact + i
End If
Next
IsPerfectNumber = (sum = n)
End Function
Private Sub Command1_Click() '这是调用部分,打印出1000内的所有完数
Dim j As Integer
For j = 2 To 1000
If IsPerfectNumber(j) Then Print j
Next
End Sub
Function IsPerfectNumber(n As Integer) As Boolean '这是判断是否为完数
Dim i As Integer, fact As Integer, sqrt As Integer, sum As Integer
If n < 2 Then Exit Function
sqrt = Int(Sqr(n))
sum = 1
For i = 2 To sqrt '只需算到开方为止
fact = n \ i
If fact = n / i Then '如果被i整除,则fact也是因子
sum = sum + fact + i
End If
Next
IsPerfectNumber = (sum = n)
End Function
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询