相亲数问题

article/2025/10/8 10:06:00

相亲数(Amicable Pair),又称亲和数、友爱数、友好数,指两个正整数中,彼此的全部约数之和(本身除外)与另一方相等。毕达哥拉斯曾说:“朋友是你灵魂的倩影,要像220与284一样亲密。” 例如220与284: 220的全部因数(除掉本身)相加是:1+2+4+5+10+11+20+22+44+55+110=284 284的全部因数(除掉本身)相加的和是:1+2+4+71+142=220 亲和数中可轻易推出,一方的全部约数之和与另一方的全部约数之和相等。(此叙述不可逆,不能用来判断是否为亲和数) 220的全部约数之和是:1+2+4+5+10+11+20+22+44+55+110+220 = 284+220 = 504 284的全部约数之和是:1+2+4+71+142+284 = 220+284 = 504

问题:求3000以内的相亲数 简单方法:

#include <iostream>
#include <stdio.h>const int maxn=30000+3;int sum[maxn];
//计算m除本身外全部约数之和
int sumnum(int m){int n=0;for(int i=1;i<=m/2;i++){if(!(m%i)){n+=i;}}return n;
}int main()
{sum[1]=0;for(int i=2;i<=30000;i++){sum[i]=sumnum(i);}for(int i=2;i<=30000;i++){//防止数组越界if(sum[i]>30000) continue;//防止出现像6这样全部约数之和等于本身if(sum[i]!=i && sum[sum[i]]==i){cout<< i<<" "<<sum[i]<<endl;//防止重复打印输出sum[i]=1;}}return 0;
}
复制代码

该方法的时间复杂度比较高。
实际计算 m 的所有约数,只需要计算\sqrt m次即可 例如:

100
1 * 100
2 * 50
4 * 25
5 * 20
10 * 10
sum[100] = 1+2+50+4+25+5+20+10
复制代码

除了平方以外不会有重复出现
完整程序

#include <iostream>
#include <stdio.h>const int maxn=30000+3;int sum[maxn];
//计算m除本身外全部约数之和
int sumnum(int m){//自2开始每个数都有一个为1的约数int n=1;int i;for(i=2;i*i<m;i++){if(!(m%i)){n+=i;n+=(m/i);}}//如果m为平方数,则其开方只能使用一次if(i*i==m){n+=i;}return n;
}int main()
{sum[1]=0;for(int i=2;i<=30000;i++){sum[i]=sumnum(i);}for(int i=2;i<=30000;i++){//防止数组越界if(sum[i]>30000) continue;//防止出现像6这样全部约数之和等于本身if(sum[i]!=i && sum[sum[i]]==i){cout<< i<<" "<<sum[i]<<endl;//防止重复打印输出sum[i]=1;}}return 0;
}
复制代码

转载于:https://juejin.im/post/5aadc9975188255579186fcf


http://chatgpt.dhexx.cn/article/v1SvJsDt.shtml

相关文章

亲和数、相亲数

转自&#xff1a;http://zh.wikipedia.org/wiki/%E7%9B%B8%E4%BA%B2%E6%95%B0 相亲数(Amicable Pair)&#xff0c;又称亲和数、友爱数&#xff0c;指两个正整数中&#xff0c;彼此的全部约数之和&#xff08;本身除外&#xff09;与另一方相等。 例如220与284&#xff1a;…

关于“相亲数”的算法实现

“相亲数”的介绍 在数学中&#xff0c;“相亲数”是指一对“你中有我&#xff0c;我中有你”的数字&#xff0c;其特点是&#xff1a; 彼此的全部约数和&#xff08;本身除外&#xff09;与另一方相等。 例如&#xff1a;220和284就是一对相亲数。 220的全部约数和&#xff…

C#调用Matlab BP神经网络预测数据

Matlab 实现BP网络进行打包(Matlab 版本为 R2022a vs 2019)&#xff1a; matlab 命令窗口输入&#xff1a;deploytool 然后选择 Library Compiler 打开如下窗口&#xff1a; 在Type 框选择 .NET Assembly 在 点加入 添加函数文件 需要修改Class Name 点击右键 选择 Re…

bp神经网络预测模型python,r语言bp神经网络预测

如何建立bp神经网络预测 模型 。 建立BP神经网络预测模型&#xff0c;可按下列步骤进行&#xff1a;1、提供原始数据2、训练数据预测数据提取及归一化3、BP网络训练4、BP网络预测5、结果分析现用一个实际的例子&#xff0c;来预测2015年和2016年某地区的人口数。 已知2009年…

BP神经网络预测(MATLAB自定义函数进行)

功能&#xff1a;7输入1输出 算法&#xff1a;BP神经网络&#xff08;MATLAB自定义函数&#xff09; 电话&#xff1a;13483417110 输入&#xff1a;入炉温度、第一加热段温度、第二加热段温度、均热段温度、第一加热段停留时间、第二加热段停留时间、均热段停留时间 输出&…

BP神经网络预测实现

基本概念 误差反向传播神经网络简称为BP(Back Propagation)网络&#xff0c;它是一种具有三层或三层以上的多层神经网络&#xff0c;每一层都由若干个神经元组成。如图所示为一个BP神经网络的结构图&#xff0c;它的左、右各层之间各个神经元实现全连接&#xff0c;即左层的每…

基于神经网络的房价预测,BP神经网络预测房价

1、如何利用matlab进行神经网络预测 matlab 带有神经网络工具箱&#xff0c;可直接调用&#xff0c;建议找本书看看&#xff0c;或者MATLAB论坛找例子。 核心调用语句如下&#xff1a; %数据输入 %选连样本输入输出数据归一化 [inputn,inputps]mapminmax(input_train); [outpu…

麻雀搜索算法优化BP神经网络预测以及MATLAB代码实现

麻雀搜索算法SSA优化BP神经网络回归预测以及MATLAB代码实现 文章目录 麻雀搜索算法SSA优化BP神经网络回归预测以及MATLAB代码实现1. 麻雀搜索算法SSA原理1.1 算法灵感来源1.2 算法模型描述 2. SSA优化BP神经网络预测算法流程3. SSA优化BP回归预测的MATLAB实现步骤4. 运行结果与…

bp神经网络预测模型优点,bp神经网络缺点及克服

BP神经网络的核心问题是什么?其优缺点有哪些? 人工神经网络,是一种旨在模仿人脑结构及其功能的信息处理系统,就是使用人工神经网络方法实现模式识别.可处理一些环境信息十分复杂,背景知识不清楚,推理规则不明确的问题,神经网络方法允许样品有较大的缺损和畸变.神经网络的类型…

提高bp神经网络预测精度,bp神经网络收敛速度慢

1、如何提高bp神经网络的预测精度啊 跟你的预测对象有很大关系。 1. 根据你的预测对象的特性选取合适的输入层、输出层和隐层神经元数目。 2. 选择合适的神经网络训练函数。 3. 保证足够的训练样本数据&#xff0c;并且确保这个训练样本数据有足够的精度能够反映需要预测的对象…

(四)BP神经网络预测(上)

BP神经网络适用于机器人控制、组合优化、模式识别、图像信息处理&#xff0c;能够对非线性数据建立精确的模型&#xff0c;对其未来进行预测。其核心思想是&#xff1a;将已预处理好的数据放到神经网络的微分方程进行反复训练&#xff0c;通过大量的训练建立BP神经预测模型&…

基于遗传算法优化BP神经网络预测和分类MATLAB实现-附代码

基于遗传算法GA优化的BP神经网络预测和分类&#xff08;含优化前对比&#xff09; 文章目录 基于遗传算法GA优化的BP神经网络预测和分类&#xff08;含优化前对比&#xff09;1. BP神经网络预测原理简介2. 遗传算法GA优化BP神经网络原理3. GA-BP模型建立3.1 模型与数据介绍3.2 …

用matlab做bp神经网络预测,matlab人工神经网络预测

如何得到神经网络预测结果 20 。 如果你用9——11年的数据不经过预测12——19年的数据就想得到第20年的数据的做法是不合理的&#xff0c;神经网络的预测讲求时间序列的连续性&#xff0c;你可以在编写maltab程序的时候才用递归的方法调用神经网络工具箱&#xff0c;加上对预…

提高bp神经网络预测精度,bp神经网络数据预处理

bp神经网络对输入数据和输出数据有什么要求 p神经网络的输入数据越多越好&#xff0c;输出数据需要反映网络的联想记忆和预测能力。BP网络能学习和存贮大量的输入-输出模式映射关系&#xff0c;而无需事前揭示描述这种映射关系的数学方程。 它的学习规则是使用最速下降法&…

bp神经网络预测模型优点,bp神经网络相关性分析

BP神经网络的可行性分析 神经网络的是我的毕业论文的一部分4&#xff0e;人工神经网络人的思维有逻辑性和直观性两种不同的基本方式。 逻辑性的思维是指根据逻辑规则进行推理的过程&#xff1b;它先将信息化成概念&#xff0c;并用符号表示&#xff0c;然后&#xff0c;根据符…

bp神经网络预测未来数据,bp神经网络数据预处理

如何建立bp神经网络预测 模型 建立BP神经网络预测 模型&#xff0c;可按下列步骤进行&#xff1a;1、提供原始数据2、训练数据预测数据提取及归一化3、BP网络训练4、BP网络预测5、结果分析现用一个实际的例子&#xff0c;来预测2015年和2016年某地区的人口数。 已知2009年——…

bp神经网络数据预测实例,bp神经网络预测数据

BP神经网络预测&#xff0c;预测结果与样本数据的理解。 输入节点数是3&#xff0c;说明输入向量的行数m3&#xff0c;你给的样本只有1行&#xff0c;是不是不全&#xff1f;输出节点只有一个&#xff0c;说明每3个输入数据对应一个预测的输出数据。其实样本数量很少&#xff…

bp神经网络预测模型原理,BP神经网络预测模型

深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习&#xff0c;基本上都是zouxy09博主的文章&#xff0c;写的蛮好&#xff0c;很全面&#xff0c;也会根据自己的思路&#xff0c;做下删减&#xff0c;细化。 五、DeepLearning的基本思想假…

bp神经网络预测模型python,bp神经网络预测模型

如何建立bp神经网络预测 模型 。 建立BP神经网络预测模型&#xff0c;可按下列步骤进行&#xff1a;1、提供原始数据2、训练数据预测数据提取及归一化3、BP网络训练4、BP网络预测5、结果分析现用一个实际的例子&#xff0c;来预测2015年和2016年某地区的人口数。 已知2009年…

BP神经网络预测

BP神经网络预测 1.输入向量与输出向量 我们将前14组国内男子跳高运动员各项素质指标作为输入&#xff0c;即&#xff08;30m行进跑&#xff0c;立定三级跳远&#xff0c;助跑摸高&#xff0c;助跑4-6步跳高&#xff0c;负重深蹲杠铃&#xff0c;杠铃半蹲系数&#xff0c;100m&…