判断友好数对(函数专题)C语言解决输入两个正整数m和n,顺序输出m到n之间的所有友好数对.如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的.例如:1184和1
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/06 17:38:08
![判断友好数对(函数专题)C语言解决输入两个正整数m和n,顺序输出m到n之间的所有友好数对.如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的.例如:1184和1](/uploads/image/z/8498529-9-9.jpg?t=%E5%88%A4%E6%96%AD%E5%8F%8B%E5%A5%BD%E6%95%B0%E5%AF%B9%EF%BC%88%E5%87%BD%E6%95%B0%E4%B8%93%E9%A2%98%EF%BC%89C%E8%AF%AD%E8%A8%80%E8%A7%A3%E5%86%B3%E8%BE%93%E5%85%A5%E4%B8%A4%E4%B8%AA%E6%AD%A3%E6%95%B4%E6%95%B0m%E5%92%8Cn%2C%E9%A1%BA%E5%BA%8F%E8%BE%93%E5%87%BAm%E5%88%B0n%E4%B9%8B%E9%97%B4%E7%9A%84%E6%89%80%E6%9C%89%E5%8F%8B%E5%A5%BD%E6%95%B0%E5%AF%B9.%E5%A6%82%E6%9E%9C%E4%B8%A4%E4%B8%AA%E6%95%B4%E6%95%B0%E7%9A%84%E6%89%80%E6%9C%89%E6%AD%A3%E5%9B%A0%E5%AD%90%E4%B9%8B%E5%92%8C%EF%BC%88%E5%8C%85%E6%8B%AC1%2C%E4%B8%8D%E5%8C%85%E6%8B%AC%E8%87%AA%E8%BA%AB%EF%BC%89%E7%AD%89%E4%BA%8E%E5%AF%B9%E6%96%B9%2C%E5%B0%B1%E7%A7%B0%E8%BF%99%E5%AF%B9%E6%95%B0%E6%98%AF%E5%8F%8B%E5%A5%BD%E7%9A%84.%E4%BE%8B%E5%A6%82%EF%BC%9A1184%E5%92%8C1)
判断友好数对(函数专题)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;
}
}
}
}
运行结果