IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 实例7完全数(C语言-循环结构的简单应用) -> 正文阅读

[C++知识库]实例7完全数(C语言-循环结构的简单应用)

  • 问题描述
    编写一个程序,求出1000以内的所有完全数。(一个数如果恰好等于它除自身之外的所有因子之和,则为完全数。例如:6=1+2+3,则6是完全数。)
#include<stdio.h>
#include<math.h>
 
int main()
{
	int a,s,i,m;
	printf("1000以内的完全数有:\n");
	a = 2; 
	while(a<1000)
	{
		s =1;
		i =2 ;
		m = (int)sqrt(a);
		do
		{
			if (a % i==0)
		 		s=s+i+ a/i ;
				i++; 
	    }while(i<m);
	    /*for(i=2;i<=m;i++)
		{
	    	if (a % i==0)
		 	s=s+i+ a/i ;
		}
	     也可以用for循环来实现 */
	    
		if(m*m==a)
			s = s+ m;
		if (s==a)
		{
			printf("%d=1",a);
			for(i=2;i<a;i++)
			{
				if(a%i==0)
				printf("+%d",i);
				
			}
		    printf("\n");
		}	
		a++;	
	}
		
	return 0;		
}

判断一个数是否为完全数的方法:
待判断的值为a,可知1和a本身一定是其因子,设自身之外的所有因子之和为s,即为判断1~√a { sqrt(a) } 之间所有的整数能否被a整除,若能被整除,则此数与商均为a的因子。

  • 扩展练习
    如果自然数M的所有因子(包括1但不包括自身,下同)之和为N,而N的所有因子之和为M,则称M的N为一对亲密数。例如220和284就是一对亲密数。编程实现输出500以内所有的亲密数。

(争取每天更新一道实例题呀~~~)

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-28 11:05:10  更:2021-11-28 11:05:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:51:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码