求30000以内所有的相亲数

article/2025/10/8 9:00:45

问题描述:
两个数彼此的全部约数和(本身除外)都与另一方相等。例如220和284:
220的全部约数(除了220)相加是:
1+2+4+5+10+11+20+22+44+55+110=284
同样284的全部约数(除了284)相加是:
1+2+4+71+142=220

算法关键:
1:如何求一个数N的全部约数?

  • 可知N%约数 == 0;

2:每个数的约数和如何存储,各个和之间如何比较?

创建一个数组S[30000],每产生一个约数和sum就放入数组中
(数组下标代表着数,里面存的值为该数的约数和,如S[220] = 284,
S[284]=220)

long S[30000];
int sum = 0;
for(int j = 1;j<=30000;j++){
for(int i = 1;i<j;i++){//注意不包括这个数本身所以i不能等于j
if(!j%i) S[i]+=i;
}} //将各个数的约数和sum存进S[];

3:再对数组S中的数进行遍历比较,找出相同的值。判别是否为相亲数条件:
S[h] ==m) && (S[m] ==h

for(int m =2;m<=30000;m++){
for (int h =m+1;h<=30000;h++){
if((S[h] ==m) && (S[m] ==h)) printf("%d,%d",h,m);

源代码:
在这里插入图片描述

结果:

在这里插入图片描述
分析:该算法需要用到的数组很大,且时间复杂度很高0(n^2)。

算法改进:从几方面:
1:求约数和的算法:
观察一个数的所有约数排列如(1 2 4 5 10 11 20 22 44 55 110 220)我们发现是对称的,右边的等于220除以左边的。则算法可以改进为如下图,我们将i的循环条件改为i<根号N。
时间复杂度由0(n2)变为0(n1.5)。
在这里插入图片描述

时间复杂度为0[n]的算法

算法思想是先不急着把1到30000的每个数的约数都求出来并存在数组中。而是遍历一遍,算出一个数i的约数和S[i],再算数S[i]的和S[S[i]].然后比较i和S[S[i]]是否相等来判断是否为一对相亲数。
在这里插入图片描述

运行结果:
在这里插入图片描述


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

相关文章

相亲、相亲,广大年轻人的噩梦,那么我们就来采集一下相亲网站数据叭~

前言 &#x1f60b; 大家早好、午好、晚好吖~ 环境开发: Python 3.8 Pycharm 模块使用: requests parsel csv 代码实现步骤: 发送请求, 模拟浏览器对于url地址发送请求 获取数据, 获取服务器返回响应数据 ----> 对应 开发者工具里面 response 解析数据, 提取我们想…

趣味整数-相亲数

问题描述 220的真因数之和为1245101120224455110284 284的真因数之和为12471142220 真因数是除了自身之外的约数 毕达拉哥斯把这样的数对A, B称为相亲数&#xff1b;A的真因数之和为B&#xff0c;B的真因数之和为A 。求100000以内的相亲数&#xff1b; public class Main {…

Java相亲数实现

2、相亲数b 【问题描述】 2500年前数学大师毕达哥拉斯就发现&#xff0c;220和284两数之间存在着奇妙的联系&#xff1a; 220的因数之和&#xff08;除了自身之外的因数&#xff09;为&#xff1a;1105544222011105421284&#xff0c;284的因数之和为&#xff1a;14271421220。…

相亲数amp;完全数最简单算法

今天看到博客园一位仁兄的相亲数&#xff0c;整体感觉不错。 原文出处&#xff1a;http://www.cnblogs.com/devil0153/archive/2010/08/22/AmicablePair-And-PerfectNumber.html 版权声明&#xff1a;版权归作者WeiSteven所有&#xff0c;转载请注明&#xff01; 但有些算…

计算10000以下所有相亲数之和。

d(n)定义为n 的所有真因子&#xff08;小于 n 且能整除 n 的整数&#xff09;之和。 如果 d(a) b 并且 d(b) a, 且 a b, 那么 a 和 b 就是一对相亲数&#xff08;amicable pair&#xff09;&#xff0c;并且 a 和 b 都叫做亲和数&#xff08;amicable number&#xff09;。 …

算法练习-相亲数

问题描述 220的真因数之和为1245101120224455110284 284的真因数之和为 12471142220 毕达拉哥斯把这样的数对A&#xff0c;B称为相亲数&#xff1a;A的真因数之和为B&#xff0c;而B的真因数之和为A。求100000以内的相亲数。 问题分析 这个问题的关键是求真因数之和&#…

判断相亲数(c语言)

问题&#xff1a;编写一个程序&#xff0c;输入两个正整数&#xff0c;判断它们是否是相亲数&#xff1b; 运行图: 源代码&#xff1a; #include <stdio.h> int sum(int x) {printf("%d,",x);int i,j,k,z0,p0,h0;int l[20];for(kx-1;k>1;k--){if(x%k0){zk…

相亲数完全数最简单算法

今天看到博客园一位仁兄的相亲数&#xff0c;整体感觉不错。 原文出处&#xff1a;http://www.cnblogs.com/devil0153/archive/2010/08/22/AmicablePair-And-PerfectNumber.html 版权声明&#xff1a;版权归作者WeiSteven所有&#xff0c;转载请注明&#xff01; 但有些算法感…

相亲数问题

相亲数&#xff08;Amicable Pair&#xff09;&#xff0c;又称亲和数、友爱数、友好数&#xff0c;指两个正整数中&#xff0c;彼此的全部约数之和&#xff08;本身除外&#xff09;与另一方相等。毕达哥拉斯曾说&#xff1a;“朋友是你灵魂的倩影&#xff0c;要像220与284一样…

亲和数、相亲数

转自&#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神经预测模型&…