判断友好数对(函数专题)C语言解决输入两个正整数m和n,顺序输出m到n之间的所有友好数对.如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的.例如:1184和1
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/26 16:09:58
判断友好数对(函数专题)C语言解决输入两个正整数m和n,顺序输出m到n之间的所有友好数对.如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的.例如:1184和1
判断友好数对(函数专题)C语言解决
输入两个正整数m和n,顺序输出m到n之间的所有友好数对.
如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的.例如:1184和1210是友好数对,因为
1184的因子之和为1+2+4+8+16+32+37+74+148+296+592=1210
1210的因子之和为1+2+5+10+11+22+55+110+121+242+605=1184
要求程序定义一个facsum ()函数和一个main()函数,facsum ()函数计算并返回n的所有正因子之和,其余功能在main()函数中实现.
int facsum (int n)
{
//计算n的所有正因子之和sum,
本函数返回sum
}
输入
输入两个正整数m和n,m
判断友好数对(函数专题)C语言解决输入两个正整数m和n,顺序输出m到n之间的所有友好数对.如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的.例如:1184和1
#include <stdio.h>
int facsum(int n) {
int i,m,sum = 1;
for(i = 2; n % i != 0; i++);
for(m = n / i; i <= m; i++)
if(n % i == 0) sum += i;
return sum;
}
void main( ) {
int m,n,i,j;
scanf("%d%d",&m,&n);
for(i = m; i < n; i++) {
for(j = i + 1; j <= n; j++) {
if((facsum(i) == j) && (facsum(j) == i)) {
printf("%d %d\n",i,j);
break;
}
}
}
}
运行结果