/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。找出1000以内的所有“完数”,并按下面格式输出其因子: 6 its factors are 1,2,

a136106345 2011-10-30 11:57:57
求纠错
#include <stdio.h>
void main()
{
int a,i,s=0;
for(a=1;a<=999;a++)
{
for(i=1;i<=a;i++)
if(a%i==0)
{s=s+i;

}
while(a==s)

printf("%d its factors are",a);

for (i=1;i<=a;i++)
{if (a%i==0)
printf("%d,",i);

}

}}

...全文
1370 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
a136106345 2011-10-30
  • 打赏
  • 举报
回复
解释一下这句printf("%d%c",r[k],k!=count-1?' ':'\n');
深度抽象 2011-10-30
  • 打赏
  • 举报
回复
6 its factors are 1 2 3
28 its factors are 1 2 4 7 14
496 its factors are 1 2 4 8 16 31 62 124 248



#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
void getAns()
{
int i,j,sum,k;
int count;
int r[1000];
for(i=1;i<=1000;i++)
{
count=sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum+=j;
r[count++]=j;
}
}
if(sum==i)
{
printf("%d its factors are ",i);
for(k=0;k<count;k++)printf("%d%c",r[k],k!=count-1?' ':'\n');
}
}
}
int main()
{
getAns();
return 0;
}
mark_wong 2011-10-30
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>

void main()
{
int a,i,s=0;
printf("1 its factors are 1\n");
for(a=1;a<=999;a++)
{
s=0;
for(i=1;i<a;i++)
if(a%i==0)
s=s+i;
if(a==s)
{
printf("%d its factors are ",a);

for (i=1;i<a;i++)
{
if (a%i==0)
printf("%d,",i);

}
printf("\n");
}
}
system("pause");
}
a136106345 2011-10-30
  • 打赏
  • 举报
回复
4#正解,我还是喜欢改我自己写的那个,2#的看不懂呐
编程点滴 2011-10-30
  • 打赏
  • 举报
回复
下面是我修改后的程序,有注释

#include <stdio.h>
void main()
{
int a,i,s=0;
for(a=1;a<=999;a++)
{
s = 0; //s要初始化
//for(i=1;i<=a;i++)
for(i=1;i<a;i++) //如果连自己都加了,那就只能输入1了
if(a%i==0)
{
s=s+i;
}
//while(a==s) //这样写会造成死循环的
if(a == s)
{
printf("%d its factors are",a);

//for (i=1;i<=a;i++)
for(i=1;i<a;i++)
{
if (a%i==0)
printf("%d,",i);
}
printf("\n"); //另外加的
}

}
}
pandeng4639088 2011-10-30
  • 打赏
  • 举报
回复


条件判断语句。

格式:( 要判断的内容 )?(真的话,整个表达式的值为这一个括号的内容):(否则,就是这个)

所以, p r i n t f ( " % d % c ", r [ k ] , k != count-1 ? ' ' : '\n' );
就是说,如果k不等于 count-1的话(这时判断为真),整个表达式的值为空格;不为真,表达式的值为一个换行符.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧