VB编程求解:如果一个数的因子之和等于这个数本身

2025-04-07 10:33:27
推荐回答(4个)
回答1:

VB语言的格式不太记得。可是你的算法明显有错。
首先在 i 那层循环 b 要置 0 ,
For i = n To m
-- b = 0
For j = 1 To i - 1---推到 i 的开方就行了 For j = 1 To sqrt(i)
If i Mod j = 0 Then
b = b + j
---------人家说因子, 即28=2*14,2与14都加的,
----------b =b +i/j; 加上这个值其中多+了i,就是28=1*28,这里多加了28
End If
Next j
If i = b Then -----------如果上面多加了 i 下面减去 b-i
Print b
End If
Next i

回答2:

"if i = b"中的"="是赋值还是比较呢..?还有在每一轮外循环结束前,b是不是要清零呢,b可是全局变量..

回答3:

for j=1 to i-1改为for j=1 to i

回答4:

Private Sub Command1_Click()
Dim n As Integer
Dim m As Integer
Dim i As Integer
Dim j As Integer
Dim b As Integer
n = InputBox("")
m = InputBox("")

For i = n To m
b = 0 '每次循环b都要清零。

For j = 1 To i - 1
If i Mod j = 0 Then
b = b + j
'Print "b=" & b
End If
Next j
If i = b Then
Print b
End If
Next i
End Sub