若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B.若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数.求10000

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/27 13:01:58
若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B.若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数.求10000
xUYkW+yf,-ָ] -P$ͨ92ZB)8N,iS;&Bi8U6Kc:jsgFK$wK(TpgιgHۥ=~.t2c z#ohy~eV\.͗efoel. Zy@{T{쵍wD2hjJyD _%?Xzz`ƀ]D_ I) f׬~jxTyv`O愇k eY  >fH"8\1ـ$Qw_W>RHV+@@k+zУY[A N[N -ae&LnG6=xiW e\T>}>XYf7ah1㒞ٗ[wg0Q3ؓ؍7lcFvox15*ݧGY X*y`휪9ʝJT'><$ ^\$LQbćT|QP@(D73O =Hv~CSl̤'p"+jI&|צTaJ]"(;(Vh8Vꖫb_]*'MTE'jDo:NKi-K1w 8]fX@mgiKt[(wf|t#߉f5kOoeo?W@ \'Y--$Gqqí=ݴÛ{s=bF$V#p(stܾ戟#rvqs$S5e/3.N@` >A_T&xPR>E,ځ>zF1n02YyR,

若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B.若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数.求10000
若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B
.若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数.求10000以内的所有亲密数对.
例如,6的因子之和为1+2+3=6,因此6与6为一对亲密数(即6自身构成一对亲密数);
220的因子之和为1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 +55+110=284,而284的因子之和为1+2+4+71+142=220,因此,220与284为一对亲密数.
具体要求如下:
(1)编制一个函数facsum(n),返回给定正整数n的所有因子(包括1但不包括自身)之和.
(2)编制一个主函数,调用(1)中的函数facsum( ),寻找并输出10000以内的所有亲密数对.
(3)输出要有文字说明.在输出每对亲密数时,要求小数在前、大数在后,并去掉重复的数对.
#include
void main()
{
\x09int facsum(int n);
\x09int a, b, c;
\x09for (a = 1; a < 10001; a++)
\x09{
\x09\x09b = facsum(a);
\x09\x09c = facsum(b);
\x09\x09if (a == c || a >= b)
\x09\x09\x09printf("%d,%d\n", b, a);
\x09}
}
int facsum(int n)
{
\x09int d, e=0;
\x09for (d = 1; d < n; d++)
\x09{
\x09\x09if (n%d==0)
\x09\x09\x09e = e + d;
\x09}
\x09return(e);
}
求高手指导一下哪里错了?

若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B.若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数.求10000
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
希望能解决您的问题.