c语言程序就是有错误,高人帮我看看啊!!!很简单

题:若正整数A的全部约数(包括1,不包括A本身)之和等于B;且整数B的全部约数(包括1,不包括B本身)之和等于A,则A、B为亲密数。编程,输入正整数A,输出亲密数A,B(... 题:
若正整数A的全部约数(包括1,不包括A本身)之和等于B ; 且整数B的全部约数(包括1,不包括B本身)之和等于A,则 A 、 B 为亲密数。编程,输入正整数A,输出亲密数 A , B(A<=B) ,若不存在亲密数,则输出 No output 。

例如: 220 和 284 就是一对亲密数。 220 的约数是: 1 、 2 、 4 、 5 、 10 、 11 、 20 、 22 、 44 、 55 、 110 ,约数之和是 284 ; 284 的约数是: 1 、 2 、 4 、 71 、 142 ,约数之和是 220 。

我的程序:

#include <stdio.h>
int main()
{
int a,b,i,j,k;
scanf("%d",&a);
for(i=1;i<a;i++);
{j=1;
if(a%i==0)
j=j+i;
}
for(b=1;b<i;b++);
{
k=1;
if(j%b==0)
k=b+k;
}
if(k==j) printf("%d-%d\n",j,k);
else printf("No output\n");
}
展开
 我来答
顺其自然浩
2010-04-11
知道答主
回答量:7
采纳率:0%
帮助的人:7万
展开全部
#include <stdio.h>
int main()
{
int a,b,i,j,k;
j = 0;
k = 0;
scanf("%d",&a);
for(i=1;i<a;i++);
{
if(a%i == 0)
j=j+i;
}
for(b=1;b<i;b++);
{
if(j%b == 0)
k=b+k;
}
if(k == j)
printf("%d-%d\n",j,k);
else
printf("No output\n");
}

刚开始设置的保存约数的和是0而不是1,且不应该放在循环里面,你要学会调试呀,今天不小心被扣了20分财富分,郁闷了。给我点分吧,心里不爽着。
tiantian884
2010-04-11 · TA获得超过179个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:164万
展开全部
#include <stdio.h>
int main()
{
int a,b,i,j=0,k=0;
scanf("%d",&a);
for(i=1;i<a;i++)//你这多了一个分号
{
if(a%i==0)
j=j+i;
}

for(b=1;b<j;b++)
{
if(j%b==0)
k=k+b;
}
if(k==a&&a<=j)printf("%d-%d\n",k,j);//保证A比B小
else printf("No output\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-04-12
展开全部
#include"stdio.h"
int main()
{
int a,b,i,j,k;
scanf("%d",&a);
j=0;
k=0;
for(i=1;i<a;i++)
{if(a%i==0)
j+=i;
}
for(b=1;b<j;b++)
{if(j%b==0)
k+=b;
}
if(j==k&&k<=j)
{getch();
printf("%d,%d\n",j,k);
}
else
{getch();
printf("No output\n");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式