早教吧作业答案频道 -->其他-->
若正整数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为一对亲密数.求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);
}
求高手指导一下哪里错了?
▼优质解答
答案和解析
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
希望能解决您的问题.
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
希望能解决您的问题.
看了 若正整数A的所有因子(包括1...的网友还看了以下:
连续正整数之和相等求满足下列条件的最小正整数():它既可以表示为9个连续正整数之和,也可以表示为1 2020-05-13 …
整数划分问题将以正整数n表示成一系列正整数之和.n=n1+n2+n3+...+nk(n1>=n2> 2020-05-20 …
两个正整数之和为另一个数字,其中一个为144.求解有一个国王,一天,他找来三个最得力的大臣,在他们 2020-06-12 …
能同时表示成连续9个整数之和、连续10个整数之和以及连续11个整数之和的最小正整数是哪一个? 2020-06-27 …
大部分的正整数可以表示为2个以上连续整数之和.例如,6=1+2+3,9=5+4=2+3+4.现在要 2020-06-27 …
用vfp解决:一个正整数有可能可以被表示为n(n=2)个连续正…一个正整数有可能可以被表示为n(n 2020-06-27 …
整数9可以表示成两个连续正整数之和:9=4+5;此外,9还恰可以用两种方法表示成正整数之和:9=4 2020-06-27 …
一个正整数,可以拆成三个连续正整数之和,也可以拆成四个连续正整数之和,还可以拆成七个连续正整数之和 2020-06-27 …
急求助有一些正整数,它可以表示成连续20个正整数的和,而且当把它表示成连续正整数之和(至少2个)有 2020-07-13 …
三个连续的整数之和是108,设中间一个为x,则其余两个整数分别为,.三个连续的整数之和是108,设 2020-07-18 …