C++第11周项目3(9)——亲密数

简介: 课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565【项目3- 有趣的数字】先阅读例题,体会处理数字的一般方法,然后自行选题进行解决,掌握这种类型程序设计的一般方法。任务:解决下面的问题(选做一道即算完成任务)(9)亲密数:如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565


【项目3- 有趣的数字】先阅读例题,体会处理数字的一般方法,然后自行选题进行解决,掌握这种类型程序设计的一般方法。

任务:解决下面的问题(选做一道即算完成任务)

9)亲密数:如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数AB称为亲密数。求3000以内的全部亲密数。(提示:按照亲密数定义,要判断数a是否有亲密数,只要计算出a的全部因子的累加和为b,再计算b的全部因子的累加和为n,若n等于a则可判定ab是亲密数。)

#include<iostream> 
#include<cmath> 
using namespace std;  
int main()
{  
	int i,a,b,n;
	for(a=1;a<=3000;++a)
	{
		//计算a的所有因子的和b
		b=0;
		for(i=1;i<a;++i)
		{
			if(a%i==0) 
				b+=i;
		}
		//计算b的所有因子的和n
		n=0;
		for(i=1;i<b;++i)
		{
			if(b%i==0) 
				n+=i;
		}  
		if(a==n)  //a与其因子和的因子和相等 
		{
			cout<<"a="<<a<<", a的因子和b="<<b<<endl;
		}
	}
	return 0; 
}  
运行结果



下面的程序修改了输出部分

#include<iostream> 
#include<cmath> 
using namespace std;  
int main()
{  
	int i,a,b,n;
	for(a=1;a<=3000;++a)
	{
		//计算a的所有因子的和b
		b=0;
		for(i=1;i<a;++i)
		{
			if(a%i==0) 
				b+=i;
		}
		//计算b的所有因子的和n
		n=0;
		for(i=1;i<b;++i)
		{
			if(b%i==0) 
				n+=i;
		}  
		if(a==n)  //a与其因子和的因子和相等 
		{
			cout<<"a="<<a<<"=1";//下面将列出a的所有因子
			for(i=2;i<a;++i)
			{
				if(a%i==0) 
					cout<<"*"<<i;
			}
			cout<<endl;
			cout<<"a的因子和b="<<b<<"=1";//下面将列出a的所有因子
			for(i=2;i<b;++i)
			{
				if(b%i==0) 
					cout<<"*"<<i;
			}
			cout<<endl<<endl;
		}
	}
	return 0; 
}  
运行结果更直观:

目录
相关文章
|
6月前
|
编译器 C++ 开发者
【Conan 入门教程 】使用Conan 2.X和Autotools高效构建C/C++项目
【Conan 入门教程 】使用Conan 2.X和Autotools高效构建C/C++项目
337 1
|
6月前
|
算法 测试技术 数据处理
【C/C++ 面试技巧】如何在简单的项目里突出自己的价值?
【C/C++ 面试技巧】如何在简单的项目里突出自己的价值?
168 1
|
6月前
|
算法 测试技术 开发工具
编写高效技术文档的艺术:C++项目实践指南
编写高效技术文档的艺术:C++项目实践指南
165 0
|
6月前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
212 7
WK
|
9天前
|
机器学习/深度学习 人工智能 算法
那C++适合开发哪些项目
C++ 是一种功能强大、应用广泛的编程语言,适合开发多种类型的项目。它在游戏开发、操作系统、嵌入式系统、科学计算、金融、图形图像处理、数据库管理、网络通信、人工智能、虚拟现实、航空航天等领域都有广泛应用。C++ 以其高性能、内存管理和跨平台兼容性等优势,成为众多开发者的选择。
WK
30 1
|
28天前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
223 3
|
2月前
|
C++
【C++案例】一个项目掌握C++基础-通讯录管理系统
这篇文章通过一个通讯录管理系统的C++项目案例,详细介绍了如何使用C++实现添加、显示、删除、查找、修改和清空联系人等功能。
39 3
|
4月前
|
Rust 测试技术 编译器
Rust与C++的区别及使用问题之Rust项目中组织目录结构的问题如何解决
Rust与C++的区别及使用问题之Rust项目中组织目录结构的问题如何解决
|
3月前
|
编译器 C++ 开发者
Visual Studio属性表:在新项目中加入已配置好的C++库
通过以上步骤可以确保Visual Studio中新项目成功地加入了之前已配置好的C++库。这个过程帮助开发者有效地管理多个项目中共享的库文件,提升开发效率。
81 0
|
4月前
|
Java C++ 开发者
如何根据项目需求选择使用C++还是Python进行内存管理?
【7月更文挑战第2天】如何根据项目需求选择使用C++还是Python进行内存管理?
47 0