C语言题目求解 详细程序
C语言题目求解详细程序上机题:亲密数问题。如果整数A的全部因子(包括1,但不包括A本身)之和等于B,且整数B的全部因子(包括1,但不包括B本身)之和等于A,A和B不相等的...
C语言题目求解 详细程序上机题:
亲密数问题。如果整数A的全部因子(包括1,但不包括A本身)之和等于B,且整数B的全部因子(包括1,但不包括B本身)之和等于A, A和B 不相等的情况下,则将整数A和整数B称为“亲密数”。求出5000以内所有的亲密数。
说明:
(1)本次上机只有一个题目;
(2)一定要使用函数求因子之和;
(3)不允许输出重复的亲密数。如220—284 亲密数,我们仅仅需要输出220—284,但不要输出284—220。 展开
亲密数问题。如果整数A的全部因子(包括1,但不包括A本身)之和等于B,且整数B的全部因子(包括1,但不包括B本身)之和等于A, A和B 不相等的情况下,则将整数A和整数B称为“亲密数”。求出5000以内所有的亲密数。
说明:
(1)本次上机只有一个题目;
(2)一定要使用函数求因子之和;
(3)不允许输出重复的亲密数。如220—284 亲密数,我们仅仅需要输出220—284,但不要输出284—220。 展开
1个回答
展开全部
#include <stdio.h>
int sumOfFactors(int numA)
{
int i=1;
int numB;
for(numB = 0; i<=numA/2; i++)
{
if(!(numA%i))
numB+= i;
}
return numB;
}
void main()
{
int numA,numB,numN;
printf("显示5000以内的亲密数:\n");
for(numA = 1; numA<=5000; numA++)
{
//计算numA的各个因子,同样循环
numB = sumOfFactors(numA);
//计算numB的各个因子,同样循环
numN = sumOfFactors(numB);
if(numN==numA&&numA<numB)
printf("%d--%d ",numA,numB);
}
}
追问
谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询