若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数.例如,又如,220的因子之和为l+2+4+5+10+11+20+22+44+55+110=284,而284的因子之和为1+2+4+71+142=220,因此,220与
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/28 11:57:38
@bIMJT
"kzB7T]1jR&YR gA~&-R?Ң$DN&)r 若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数.例如,又如,220的因子之和为l+2+4+5+10+11+20+22+44+55+110=284,而284的因子之和为1+2+4+71+142=220,因此,220与 若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数.例如,又如,220的因子之和为l+2+4+5+10+11+20+22+44+55+110=284,而284的因子之和为1+2+4+71+142=220,因此,220与
若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数.
例如,又如,220的因子之和为l+2+4+5+10+11+20+22+44+55+110=284,而284的因子之和为1+2+4+71+142=220,因此,220与284为一对亲密数.
求3000以内的亲密数对.
编写一个自定义函数过程facsum(n as integer),函数的返回值是给正整数n的所有因子(包括1但不包括自身)之和.
在窗体的click 事件过程中调用已定义的函数facsum,寻找并在窗体上输出3000以内的所有亲密数对.在输出每对亲密数对时,要求小数在前,大数在后,并去掉重复的数对.
Private Sub form_Click()
Dim i As Integer,j As Integer,k As Integer
For i = 1 To 3000
j = facsum(i)
k = facsum(j)
If i = k And i < j Then Print i; j
Next i
End Sub
Function facsum(n As Integer) As Integer
Dim s As Integer
s = 0
For i = 1 To n \ 2
If n Mod i = 0 Then s = s + i
Next i
facsum = s
End Function