c语言 寻找亲密数对(编程题)
题目描述如果数a的真因子(即不包含该数本身的因子)之和等于b,而b的真因子之和等于a,而且a与b不相等,则称a和b是亲密数对。编程求指定范围内的亲密数对。输入输入有2个数...
题目描述
如果数a的真因子(即不包含该数本身的因子)之和等于b,而b的真因子之和等于a,而且a与b不相等,则称a和b是亲密数对。编程求指定范围内的亲密数对。
输入
输入有2个数lBound,uBound,两者均为不很大的正整数,且lBound<=uBound。
输出
输出[lBound,uBound]区间内的亲密数对。
如果有亲密数对,且有n个,则输出n行。每行的输出格式为"a<->b",且a<b。
如果没有亲密数对,则输出“No intimate numbers”。
样例输入
1 1000
样例输出
220<->284 展开
如果数a的真因子(即不包含该数本身的因子)之和等于b,而b的真因子之和等于a,而且a与b不相等,则称a和b是亲密数对。编程求指定范围内的亲密数对。
输入
输入有2个数lBound,uBound,两者均为不很大的正整数,且lBound<=uBound。
输出
输出[lBound,uBound]区间内的亲密数对。
如果有亲密数对,且有n个,则输出n行。每行的输出格式为"a<->b",且a<b。
如果没有亲密数对,则输出“No intimate numbers”。
样例输入
1 1000
样例输出
220<->284 展开
1个回答
展开全部
#include<stdio.h>
int calcsum(int n)
{
int i,sum=0;
for(i=1;i<=n/2;i++)
{
if(n%i==0)
{
sum+=i;
}
}
return sum;
}
int main()
{
int lBound,uBound;
int i,j;
printf("请输入lBound和uBound:");
scanf("%d %d",&lBound,&uBound);
for(i=lBound;i<=uBound;i++)
{
for(j=i+1;j<=uBound;j++)
{
if(calcsum(i)==j&&calcsum(j)==i)
printf("%d<->%d\n",i,j);
}
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询