用C语言编一道题目

本人在学C语言。题目:编一个程序,输出6至10000之间的亲密数对,若a、b是亲密数对,则a的因子和等于b、b的因子和等于a且a不等于b。本人编写如下,但运行起来总是不对... 本人在学C语言。
题目:
编一个程序,输出6至10000之间的亲密数对,若a、b是亲密数对,则a的因子和等于b、b的因子和等于a且a不等于b。
本人编写如下,但运行起来总是不对。请大侠指点下。
#include<stdio.h>

#define HIGH 10000
#define LOW 6

void p(int a, int b);

int main()
{
int a = LOW ;
int i;

printf("满足题意的亲密数对有:");

for(;a <= HIGH; a++){

for(i = 1;i <= (HIGH - LOW);i++){
p(a, a + i);
}
}

return 0;
}
void p(a, b)
{
int m = 1, n = 1;
int s = 0, sum = 0;

for(;m <= a;m++){

if(a % m == 0){
s = s + m;
}

}

for(;n <= b;n++){

if(b % n == 0){
sum += n;
}

}

if(s == b && sum == a)
printf("\n<%d, %d>", a, b);
}
希望大侠能给我指点我错在何处。。而不是给个程序。。辛苦了。
展开
 我来答
匿名用户
推荐于2017-05-22
展开全部
//---------------------------------------------------------------------------

#include<stdio.h>

#define HIGH 10000
#define LOW 6

int p(int a) /*寻找a的亲密数,找到则返回该亲密数,否则返回-1*/
{
int i;
int suma=0,sumb=0;
for (i=1; i < a; i++) {
suma+=(a%i)?0:i;
}
for (i=1; i<suma; i++) {
sumb+=(suma%i)?0:i;
}

return (a==sumb&&a!=suma)?suma:-1;

}

int main(void)
{
int a=LOW,b;
while (a<HIGH)
if ((b=p(a++))!=-1&&a<b) {
printf("<%d,%d>\n",a-1,b);
}
return 0;
}

//---------------------------------------------------------------------------
cgiggle
2009-11-29 · TA获得超过1957个赞
知道大有可为答主
回答量:1996
采纳率:0%
帮助的人:1263万
展开全部
#include<stdio.h>

#define HIGH 10000
#define LOW 6
main()
{
int a,b,n,i;
for(a=LOW;a<=HIGH;a++)
{
for(b=0,i=1;i<=a/2;i++)
if(a%i==0) b+=i;
for(n=0,i=1;i<=b/2;i++)
if(b%i==0) n+=i;
if(n==a&&a<b)
printf("%4d...%4d\n",a,b);
}
}
//这是我对于您程序的改写和补充 希望有所帮助 :)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaojiefeng119
2009-11-29 · TA获得超过643个赞
知道小有建树答主
回答量:637
采纳率:0%
帮助的人:599万
展开全部
#include<stdio.h>

#define HIGH 10000
#define LOW 6

int p(int a);//p是求a除了自身的所有因数的和

int main()
{
int a = LOW ,b;
int i;

printf("满足题意的亲密数对有:\n");

for(;a <= HIGH; a++)
{
b=p(a); //这边
if(b<=a) continue;
if(p(b)==a) printf("%d %d\n",a,b);
}
return 0;
}

int p(int a)
{
int m = 1;
int sum = 0;

for(;m < a;m++)
{

if(a % m == 0)
{
sum+=m;
}

}
return sum;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
永远的散漫o
2009-11-29 · TA获得超过297个赞
知道小有建树答主
回答量:859
采纳率:0%
帮助的人:560万
展开全部
你补充下 什么是因子和?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式