您的位置:首页 > 编程语言 > C语言/C++

C语言学习笔记_算法——“求1000以内完数”

2018-01-18 18:35 363 查看
一个比较经典的循环算法入门题:一个数如果恰好等于它的真因子之和,这个数就称为“完数”,例如6的真因子为1、2、3,而6=1+2+3,因此6是“完数”。编程找出1000以内的所有完数,并按下面格式输出其因子:6 its factors are 1,2,3#include<stdio.h>

int main()
{
int x, i, sum;
for (x = 3; x <= 1000; x++)
{
sum = 1; //初始化sum
for (i = 2; i <= x/2 ; i++) //从2开始,1不是完数
{
if (x%i == 0)sum +=i;
}
if (sum == x)printf("%d its factors are 1 ", x);//找到完数,感觉是为了“,”处理方便,所以在这里的末尾加了1
if (sum == x)
{
for (i = 2; i <= x / 2; i++)
{
if (x% i == 0)printf(",%d ", i);//找到完数的因子
}
printf("\n");
}
}
return 0;
}运行结果: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐