《python程序语言设计》2018版第5章第35题求完全数,解题经历,我认为的正确代码放在最后

本文主要是介绍《python程序语言设计》2018版第5章第35题求完全数,解题经历,我认为的正确代码放在最后,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
5.35从4月开始一直到成功,此文章将所有的记录和不同阶段代码展现给大家。但是没有配图,我最后成功的代码放在了最后。

2024.04.15
05.35.01version
求完整数,这个让我突然有点蒙。我什么时候能求完整数呢??
正因子之和。我该怎么求
2=1+1 这不是正因子。应该是不同的正因子加在一起。
正因数是一个整数中大于0的因数,且是整数不能是负数

if z % b = a and b!=a:if b + a == z:print(z is profit number)

首先等于2从2开始进行正因子的操作
b = 2
基础数肯定要大于2小于10000

base_num =3
ele_num = 0
while base_num < 10000:if base_num % b ==0:ele_num = belif base_num %b != 0:b +=1base_num +=1

不使用函数概念。需要直接先将求因子的公式铺开概念
依次找出3到10000之间的数,一个一个的进行正因子的对比!!
那么就是如何进行一个一个的取值呢?

b = 2
# 基础数肯定要大于2小于10000
base_num = 4
ele_num = 0
total_num = 0
while base_num < 10:if base_num % b == 0:base_num /= bele_num = bprint(ele_num, base_num)elif base_num % b != 0:b += 1ele_num = bprint(ele_num)# if total_num == base_num:#     print(f"This base is profit{base_num}")total_num += ele_num# print(total_num)# print(ele_num)base_num += 1

这是第一阶段的代码里面的备注部分是当时用来测试代码显示结果用的。
2024.04.16
整除。我是不是可以
2024.04.17

先建立基本的框架
基础数和循环的限制
整数被整除等于0 然后因数相加相等的即为完全数

代码如下:

base_num = 2
div_num = 1
div_after_num = 0
div_after_total = 0
while base_num < 10:# 如果正整数和其正因子相加不相等则继续循环if base_num != div_after_num:if base_num % div_num == 0:base_num /= div_numdiv_after_num = base_num / div_numelif base_num % div_num != 0:div_num += 1if base_num % div_num == 0:base_num /= div_numdiv_after_num = base_num / div_numprint(f"this number {div_after_total} is profit.")div_after_total += div_after_num# print(f"this number {div_after_total} is profit.")base_num += 1

脑袋一团乱。继续干活把。 先停一下
2024.04.18
2024.04.20
头晕目眩开始了新的一天。真的变成代码好累。
为什么我的运算变成这样。
看来我要舍去一些东西。

难点1
正因子的求解。
一个数不断的除,如果没有余数即为正因子可以继续整除。否则增加一个数 #这是一个点。试一下


base_num = 2
div_num = 2
while base_num < 10:if base_num % div_num == 0:base_num /= div_numprint(base_num, div_num)else:base_num += 1print("next", base_num)base_num += 1

结果却很尴尬,继续分析。不过我感觉方向还是对的。

    if base_num % div_num == 0 and base_num / div_num == 1:

加了这个条件似乎也没有解决根本的问题。
我不想参考上一次成功的代码。我甚至都不想提。然后完全再来写。希望自己能够写透,写明白
我现在要确定什么是正因子。或者是在我自己的这个算式里谁是正因子。
1、能被整除,不论除数是多少都能整除。
2、被除数已经为1
方法对。但我突然想起来。是不是先练习求一个被除数的正因子呢??
python代码如下


base_num = 6
div_num = 2
while base_num != 1:if base_num % div_num == 0:base_num/=div_numprint(base_num,div_num)else:div_num+=1

我感觉先从但一个数的研究开始更好,这段代码并不是我想要的。虽然是按我想法设计的,但是结果却不熟。

base_num = 28
div_num = 1
# 新建一个变量用来存储除数
total_num = 0
while base_num != 1:if base_num % div_num == 0:base_num /= div_numprint(base_num)total_num = base_numif base_num % div_num == 0 and base_num % (div_num + 1) != 0:div_num += 1elif base_num % div_num != 0:div_num += 1

玩游戏让我脑袋疼。昨天画了大概4副曼陀罗速写,是不是画多了

2024.04.21
我现在已经尽力的去分析,包括调来了5.18的代码也是无济于事。
2024.05.02
终于完成了学校4月反馈表和日志的提交。一天真的是累呀
不知道还能不能有新的想法

如何求除数和被除数的关系。是一个点。

2024.05.03
任何想法都无法复制,什么样的因才是得果呢??
编写代码的目的就是在因的环境中创造。
循环的起点
1、什么是循环的起点。什么条件是我们循环语句的开始。
整除一个数,因子正因子 这个题也是求正因子。真的是巧合,
没想到这个时候我正好刚刚对因果的关系有了新的想法。
这并不是我创造至少我在慢慢的中观察的一种结论。
我们因为果而去认识时间,接受事物、甚至是宗教。

    28 % 1 ==0 28 % 2 ==028 % 3 ==1

那么我做一个判断是否可以呢?
就是不断的用数字来进行判断只要是因子整除等于0,就留下并累加。
那么循环为真来作为循环开始的条件如何
这个判断成功了

    if base_num % div_num == 0:total_num= div_numprint(total_num)div_num += 1

代码成功,并且我也找到了替代while true的代码

base_num = 6
div_num = 1
# 新建一个变量用来存储除数
total_num = 0
while div_num != base_num:if base_num % div_num == 0:total_num= div_numprint(total_num)total_num +=total_numif total_num ==base_num:print(f"This number {base_num} is perfect number ")div_num += 1else:div_num+=1

base_num是要求的完全数。大家可以试试28等等。哈哈
祝大家学习快乐。明天上班顺利

这篇关于《python程序语言设计》2018版第5章第35题求完全数,解题经历,我认为的正确代码放在最后的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1049731

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结