一个数如果恰好等于它的因子之和,这个数称为“完数”,如6的因子为1,2,3,而6=1+2+3,因此6为完数。

编程序找出1000之内的所有完数,并按6itsfactorsare1,2,3格式输出其因子#include<stdio.h>intmain(){intn,temp,sum... 编程序找出1000之内的所有完数,并按6 its factors are 1,2,3格式输出其因子
#include <stdio.h>
int main()
{
int n,temp,sum; /*n表示要判断的数,temp表示因子,sum表示因子之和*/
for(n=1;n<1000;n++)
{
sum= 0;
for(temp=1;temp<n;temp++)
{
if(n%temp==0) /*判断n能否被temp整除,能的话temp即为因子*/
{
sum=sum+temp; /*求因子之和*/
}
}
if(sum==n) /*判断此数是否等于因子之和*/
{
printf("%d its factors are ",n);
}
if(n%temp==0)
{
printf("%d",temp);
printf("\n");
}
}
return 0;
}
我的程序无法正常输出因子,请问哪里错了?
展开
 我来答
匿名用户
2017-04-02
展开全部
#include <stdio.h>
int main()
{
int n,temp,sum; /*n表示要判断的数,temp表示因子,sum表示因子之和*/ 
for(n=1;n<1000;n++) 
{
sum= 0;
for(temp=1;temp<n;temp++)
{
if(n%temp==0) /*判断n能否被temp整除,能的话temp即为因子*/ 
{
sum=sum+temp; /*求因子之和*/ 
}
}
if(sum==n) /*判断此数是否等于因子之和*/ 
{
printf("%d its factors are ",n);
for(temp=1;temp<n;++temp)
{
if(n%temp==0)
{
printf("%d ",temp);
}
}
printf("\n");
}

}
return 0;
}
White_MouseYBZ
2017-04-02 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:7034万
展开全部
  1. 把if(n%temp==0)
    {
    printf("%d",temp);
    printf("\n");
    }删除。

  2. 把printf("%d its factors are ",n);改成printf("%d its factors are\n",n);。

追问

还是没显示因子啊

追答

那得把if(sum==n){一段改为

if(sum==n){ /*判断此数是否等于因子之和*/ 
    printf("%d its factors are 1",n);
    for(temp=2;temp<n/2;temp++)
        if(n%temp==0)
            printf("+%d",temp);
    printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式