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
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
相关文章推荐
- C语言学习笔记_算法——“求1000以内完数”
- 小蚂蚁学习C语言(37)——题目——求出1000以内的所有完数以及它的因子
- c语言学习记录--求出1000以内所有完数,并输出其因子
- 算法:C语言实现(第3章 学习笔记)
- 数据结构与算法学习笔记——堆栈及其应用(10以内简单四则计算器)
- 《PID控制算法的C语言实现》学习笔记
- C语言求1000以内完数
- 算法:C语言实现第三章第一节学习笔记
- 【嵌入式系统学习记录】练习题:一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数。
- C语言学习笔记 算法和数据结构
- java经典算法_009"完数"等于他的所有因子之和,例如:6=1+2+3,求1000以内的所有完数
- 《数据结构与算法——C语言实现》学习笔记——归并排序
- C语言之基本算法38—格式化输出10000以内的所有完数
- 学习C语言和创建你自己编程语言在1000代码以内——第一章介绍
- C语言学习笔记_算法——“迭代法求平方根”
- 学习C语言和创建你自己编程语言在1000代码以内——第二章环境
- 整数算法训练05—一个数如果恰好等于它的因子之和,这个数被成为”完数” 例如:6=1+2+3.请编程找出1000以内的完数
- 数据结构与算法(c语言) 学习笔记——第三章练习
- 数据结构与算法学习笔记——quick sort
- 算法学习笔记一学习算法的三个原因