《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 = b
   elif base_num %b != 0:
           b +=1
  base_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 /= b
        ele_num = b
        print(ele_num, base_num)
    elif base_num % b != 0:
        b += 1
        ele_num = b
        print(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_num
            div_after_num = base_num / div_num

        elif base_num % div_num != 0:
            div_num += 1
            if base_num % div_num == 0:
                base_num /= div_num
                div_after_num = base_num / div_num
                print(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_num
        print(base_num, div_num)
    else:
        base_num += 1
        print("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_num
        print(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_num
        print(base_num)
        total_num = base_num
        if base_num % div_num == 0 and base_num % (div_num + 1) != 0:
            div_num += 1
    elif 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 ==0
    28 % 3 ==1

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

    if base_num % div_num == 0:
        total_num= div_num
        print(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_num
        print(total_num)
        total_num +=total_num
        if total_num ==base_num:
            print(f"This number {base_num} is perfect number ")
        div_num += 1
    else:
        div_num+=1

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/697374.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux 网桥学习

前言&#xff1a; 本文来学习一下linux网桥概念和网桥配置 1. linux网桥概念 网桥&#xff0c;类似于中继器&#xff0c;连接局域网中两个或者多个网段。它与中继器的不同之处就在于它能够解析它收发的数据&#xff0c;读取目标地址信息&#xff08;MAC&#xff09;&#xff…

QSqlDatabase、QSqlQuery、QSqlRecord、Sqlite用法

使用QSqlDatabase、QSqlQuery、QSqlRecord、Sqlite数据库实现一个简单的界面查询 1. 创建Sqlite数据库&#xff0c;表 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include "QSqlDatabase" #include "QSqlQuery&q…

ICRA 2024:北京工业大学马楠教授联合中科原动力公司推出番茄采摘自主机器人AHPPEBot,实现32.46秒快速准确采摘

当前&#xff0c;农业生产正深受劳动力短缺困扰&#xff0c;这一现状对生产规模的进一步拓展构成了严重制约。为了突破这一瓶颈&#xff0c;实施自动化已成为提升农业生产力的关键途径&#xff0c;这也使得机器人采收技术备受关注。 现今的机器人采收系统普遍采用先进感知方法&…

31-捕获异常(NoSuchElementException)

在定位元素的时候&#xff0c;经常会遇到各种异常&#xff0c;遇到异常又该如何处理呢&#xff1f;本篇通过学习selenium的exceptions模块&#xff0c;了解异常发生的原因。 一、发生异常 打开百度搜索首页&#xff0c;定位搜索框&#xff0c;此元素id"kw"。为了故意…

我的mybatis学习笔记之二

第一版学习笔记 1,接口是编程: 原生: Dao > DaoImpl mybatis: Mappper > XXXMapper.xml 2,SqlSession代表和数据库的一次会话:用完必须关闭 3,SqlSession和connection一样是非线程安全的.每次使用都必须去获取新的对象 4,mapper接口没有是一类,但是mybtis会为这个接口生…

JVisuaIVM监控Jstatd启动时报错

一、 启动监控Jstatd报错 当我们在windows系统上面启动的时候好好的&#xff0c;在linux上面启动报错&#xff0c;提示报错如下&#xff0c;好像每一什么权限之类的 在tomcat下面查看你的项目使用的java版本&#xff0c;vi /usr/local/tomcat7-8083/bin/catalina.sh 查看我的…

域内攻击 ----> DCSync

其实严格意义上来说DCSync这个技术&#xff0c;并不是一种横向得技术&#xff0c;而是更偏向于权限维持吧&#xff01; 但是其实也是可以用来横向&#xff08;配合NTLM Realy&#xff09;&#xff0c;如果不牵强说得话&#xff01; 那么下面&#xff0c;我们就来看看这个DCSyn…

基于AI大文本模型的智慧对话开发设计及C#源码实现,实现智能文本改写与智慧对话

文章目录 1.AI 大模型发展现状2.基于AI服务的智慧对话开发2.1 大模型API选择2.2 基于C#的聊天界面开发2.3 星火大模型API接入2.4 优化开发界面与显示逻辑 3.源码工程Demo及相关软件下载参考文献 1.AI 大模型发展现状 端午假期几天&#xff0c;关注到国内的AI大模型厂商近乎疯狂…

时序数据库是Niche Market吗?

引言 DB-Engines的流行程度排行从其评估标准[4]可以看出完全不能够做为市场规模的评估标准。甚至于在知道市场规模后可以用这个排行作为一个避雷手册。毕竟现存市场小&#xff0c;可预见增长规模小&#xff0c;竞争大&#xff0c;创新不足&#xff0c;那只能卷价格&#xff0c…

冲刺面试加油

1、HTML语义化&#xff1f; 对于开发者而言&#xff0c;语义化标签有着更好的页面结构&#xff0c;有利于代码的开发编写和后期的维护。 对于用户而言&#xff0c;当网络卡顿时有良好的页面结构&#xff0c;有利于增加用户的体验。 对于爬虫来说&#xff0c;有利于搜索引擎的…

你还不知道无线PLC?

随着技术的不断发展&#xff0c;工业控制系统也在经历着革新。无线PLC&#xff08;Programmable Logic Controller&#xff0c;可编程逻辑控制器&#xff09;是一种结合了无线通讯技术和传统PLC系统的创新型技术。它为工业自动化提供了一种更灵活、更便捷的解决方案&#xff0c…

跟我学,数据结构和组原真不难

我个人认为408中计算机组成原理和数据结构最难 难度排行是计算机组成原理>数据结构>操作系统>计算机网络。 计算机组成原理比较难的原因是&#xff0c;他涉及的硬件的知识比较多&#xff0c;这对于大家来说难度就很高了&#xff0c;特别是对于跨考的同学来说&#x…

保姆级讲解 Linux下FTP服务器的搭建、配置与管理

本来目录很长的 因为感觉不太美观 所以小标题都删掉了 本文介绍了 本地用户的FTP服务器搭建实例匿名用户的FTP服务器搭建实例虚拟用户的FTP服务器搭建实例企业常见类型搭建实验 配置与管理FTP服务器 配置与管理FTP服务器一、FTP相关知识二、项目设计与准备三、项目实施四、认识…

架构设计-web项目中跨域问题涉及到的后端和前端配置

WEB软件项目中经常会遇到跨域问题&#xff0c;解决方案早已是业内的共识&#xff0c;简要记录主流的处理方式&#xff1a; 跨域感知session需要解决两个问题&#xff1a; 1. 跨域问题 2. 跨域cookie传输问题 跨域问题 解决跨域问题有很多种方式&#xff0c;如使用springboot…

打造你的博客帝国:DjangoBlog带你飞向国际舞台!

你的网站加载速度还在慢如蜗牛吗&#xff1f;将为你揭开网站速度提升的神秘面纱。从缓存策略到数据库优化&#xff0c;再到高效的代码实践&#xff0c;我们深入探讨了如何让DjangoBlog飞速运行。不仅如此&#xff0c;我们还提供了实用的监控和日志管理技巧&#xff0c;确保你的…

【Linux】—— 线程控制的基本介绍

目录 &#xff08;一&#xff09;POSIX线程库 &#xff08;二&#xff09;创建线程 2.1 线程ID及进程地址空间布局 &#xff08;三&#xff09;线程终止 &#xff08;四&#xff09;分离线程 &#xff08;一&#xff09;POSIX线程库 POSIX线程库&#xff08;POSIX Thread…

PySpark教程(001):基础准备与数据输入

PySpark 学习目标 了解什么是Spark、PySpark了解为什么学习PySpark了解如何和大数据开发方向进行衔接 Spark是什么&#xff1f; Apache Spark是用于大规模数据处理的统一分析引擎。 简单来说&#xff0c;Spark是一款分布式的计算框架&#xff0c;用于调度成百上千的服务器…

Go微服务: 理解分布式锁

概述 我们先看一个场景&#xff0c;到了双11&#xff0c;我们的商户又开始卖商品啦但是&#xff0c;我们的库存是有限的&#xff0c;如果超卖了&#xff0c;可能平台就会涉及相关法律责任了所以&#xff0c;我们的库存扣除问题&#xff0c;一定是一个非常经典的问题 先看上图&…

LabVIEW电池测试系统

1. 背景 随着电动汽车、可再生能源等领域的迅速发展&#xff0c;电池作为能源储存和释放的核心组件&#xff0c;其性能评估变得尤为重要。电池的充放电性能、容量、循环寿命等参数直接影响着设备的工作性能和使用寿命。因此&#xff0c;设计一套全面、准确的电池测试系统对于提…

orbslam2代码解读(2):tracking跟踪线程

书接上回&#xff0c;mpTracker->GrabImageMonocular(im,timestamp)函数处理过程&#xff1a; 如果图像是彩色图&#xff0c;就转成灰度图如果当前帧是初始化的帧&#xff0c;那么在构建Frame的时候&#xff0c;提取orb特征点数量为正常的两倍&#xff08;目的就是能够在初…