文档章节

小蚂蚁学习C语言(37)——题目——求出1000以内的所有完数以及它的因子

嗜学如命的小蚂蚁
 嗜学如命的小蚂蚁
发布于 2016/01/28 19:20
字数 520
阅读 300
收藏 1
点赞 1
评论 0

编写程序:

    输出1000以内的所有完数及其因子。所谓完数是指一个整数的值等于它的因子之和,例如6的因子是1,2,3,而6=1+2+3,故6是一个完数。

/*
	求出1000以内的所有完数以及它的因子
*/
# include <stdio.h>

int main( void )
{
	int i, j, sum;
	
	/*
		第一个循环,检查从1到1000中的每一个数字是不是完数
		如果是完数,输出完数和它所有的因子
	*/
	for( i = 1; i <= 1000; ++i )
	{
		/*
			检查该数字是否是完数
			方法:从1到i-1,依次取余,余数为0,说明是它的公约数,
				累加公约数,最后的值如果等于i,这说明i就是完数。
		*/
		sum = 0;
		for( j = 1; j < i; ++j )
		{
			if( i%j == 0 )
			{
				sum += j;
				
			}
		}
		if( sum == i )
		{
			printf( "完数是:%d,它的因子是:", i );
			
			/* 
				这个for循环是将其所有因子取出
				和第22行的for循环思路是一样的		
			*/
			for( j = 1; j < i; ++j )
			{
				if( i%j == 0 )
				{
					printf( "%d ", j );
				}
			}
			
			printf( "\n" );
		}
		
	}
	
	return 0;
}
/*
	VC++6.0输出的结果是
	=================================================
	完数是:6,它的因子是:1 2 3
	完数是:28,它的因子是:1 2 4 7 14
	完数是:496,它的因子是:1 2 4 8 16 31 62 124 248
	=================================================
	总结:
		完数很轻松的就输出出来了,怎么把因子给分别输出出来让我想来半天。
		其实很简单,脑子一下子没转过来弯
		第10行的for循环,就是把它的因子相加,得到的sum,一旦sum成立,
		说明拿到的所有j都是因子,在第20行输出完数之后,再把第10行for循环
		拿到的所有j,输出就完事了。
		(虽然感觉时间复杂度好高~~~~(>_<)~~~~)
		
*/

    时间复杂度确实好高,不知道还有没有更好的办法来实现这个程序。

    

    学PHP的小蚂蚁 博客 http://my.oschina.net/woshixiaomayi/blog



© 著作权归作者所有

共有 人打赏支持
嗜学如命的小蚂蚁
粉丝 136
博文 161
码字总数 100864
作品 0
郑州
程序员
各种基本算法实现小结(七)—— 常用算法

各种基本算法实现小结(七)—— 常用算法 (均已测试通过) ====================================================================== 1、判断素数 测试环境:VC 6.0 (C) #include include...

长平狐 ⋅ 2013/01/06 ⋅ 0

小蚂蚁学习C语言(29)——C语言补码(下)

解释以下问题: vc++6.0中一个int类型的变量所能存储的数字的范围是多少 int 类型变量所能储存的最大整数用十六进制表示是: 7FFFFFFF int 类型变量所能存储的绝对值最大的负整数用十六进制表...

嗜学如命的小蚂蚁 ⋅ 2015/12/25 ⋅ 0

考研复试系列——第九节 数论基础

考研复试系列——第九节 数论基础 引言 该部分内容来源于 《王道论坛》 。 写个算法,对 2 个小于 1000000000 的输入,求结果。 特殊乘法举例:123 45 = 14 +15 +24 +25 +34+3*5 样例输入: ...

cassiepython ⋅ 2017/03/09 ⋅ 0

C语言编程——有趣的数(使用动态规划实现)

虽然大三上学期学习了动态规划算法,可也只是简单地了解什么是动态规划算法,纸上谈兵而已,并没有真正地将这种算法运用到解题中,没有真正体会到动态规划算法的妙处。最近在准备CCF,有一道...

风一样的程序媛 ⋅ 2016/04/05 ⋅ 0

干货 | 中科院曹婍:基于深度学习的社交网络流行度预测研究

  AI科技评论按:随着诸如 Twitter、Facebook、新浪微博等社交平台的兴起,每天有成千上万的消息在这些平台上产生并传播。在如此大体量的消息中,如何能提前预测某条消息在未来的关注转发量...

AI科技评论 ⋅ 2017/12/26 ⋅ 0

编程题——31~40

三十一、连续子数组的最大和 输入一个整数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 三十二、从1到n整数中...

thanatos_y ⋅ 2016/07/26 ⋅ 0

砝码分盐问题——从数学和计算机的角度分析(7)

本博客(http://blog.csdn.net/livelylittlefish)贴出作者(阿波)相关研究、学习内容所做的笔记,欢迎广大朋友指正! Content 0.问题 1.一些方法 2.从数学的角度分析 3.能否编程计算? 4....

晨曦之光 ⋅ 2012/03/09 ⋅ 0

【LeetCode】400 Nth Digit(java实现)

原题链接 https://leetcode.com/problems/nth-digit/ 原题 Find the $n^th$ digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... Note:n is positive and will ......

BookShu ⋅ 2016/10/23 ⋅ 0

程序员面试题100题(一)

题目选自以下博客网址: http://zhedahht.blog.163.com/#。 第26题: 题目:输入一个正数n,输出所有和为n连续正数序列。 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5...

hoodlum1980 ⋅ 2007/07/13 ⋅ 0

(优酷2014年笔试题 )数组重新组合求最小值

zhagoodwell 查昊昊 优酷2014年笔试题 题目:含有n个元素的整型数组,将这个n个元素重新组合,求出最小的数,如{321,3,32},最小的数为 321323 下面的代码 复杂度为 o(n²);因为用了选择排序...

zhagoodwell ⋅ 2017/02/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部