Python使用递归法对整数进行因数分解

这篇具有很好参考价值的文章主要介绍了Python使用递归法对整数进行因数分解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

所谓因数分解,是指把一个整数变成其所有质因数相乘的形式,例如10=2*5, 39000=2*2*2*3*5*5*5*13。

from random import randint

def factors(num, fac=[]):

    #每次都从2开始查找因数

    for i in range(2, int(num**0.5)+1):

        #找到一个因数

        if num%i == 0:

            fac.append(i)

            #继续分解,重复这个过程

            factors(num//i, fac)

            #注意,这个break非常重要

            break

    else:

        #不可分解了,自身也是个因数

        fac.append(num)

facs = []

n = randint(2, 10**8)

factors(n, facs)

result = '*'.join(map(str, facs))

if n == eval(result):

    print(n, '=', result)

代码截图如下:

Python使用递归法对整数进行因数分解

连续几次的运行结果

Python使用递归法对整数进行因数分解
文章来源地址https://www.toymoban.com/news/detail-422094.html

到了这里,关于Python使用递归法对整数进行因数分解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • c++分解质因数详解

    分解质因数 1. 定义 把一个合数分解成若干个质因数的乘积的形式,即求质因数的过程叫做分解质因数。如60=2×2×3×5 质因数也称为质因子或素因数。 性质1:质数分解的结果是唯一的。 2. 短除法 从最小的质数除起,一直除到结果为质数为止。分解质因数的算式叫短除法,和

    2024年02月04日
    浏览(28)
  • 【华为OD机考 统一考试机试C卷】分解连续正整数组合/ 分解正整数(C++ Java JavaScript Python)

    2023年11月份,华为官方已经将 华为OD机考:OD统一考试(A卷 / B卷)切换到 OD统一考试(C卷)和 OD统一考试(D卷) 。根据考友反馈:目前抽到的试卷为B卷或C卷/D卷,其中C卷居多 ,按照之前的经验C卷D卷部分考题会复用A卷/B卷题,博主正积极从考过的同学收集C卷和D卷真题,

    2024年01月19日
    浏览(36)
  • 洛谷B2084质因数分解

    已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数。 输入只有一行,包含一个正整数 n(6n1000000000)。 输出只有一行,包含一个正整数 p,即较大的那个质数。 输入 #1 输出 #1

    2024年02月22日
    浏览(30)
  • C. Multiplicity(DP + 分解因数)

    Problem - C - Codeforces 给定一个整数数组a1,a2,...,an。 如果可以从a中删除一些元素得到b,则称数组b为a的子序列。 当且仅当对于每个i(1≤i≤k),bi是i的倍数时,数组b1,b2,...,bk被称为好。 在模109+7下找到a中好的子序列的数量。 如果两个子序列的包含数字的索引集合不同

    2024年02月02日
    浏览(25)
  • 【编程基础】021.用选择排序法对10个整数从小到大排序

    题目描述 用选择法对10个整数从小到大排序。 输入格式 输入10个无序的数字 输出格式 排序好的10个整数 样例输入 4 85 3 234 45 345 345 122 30 12 样例输出 3 4 12 30 45 85 122 234 345 345 解题思路 选择排序的思路其实很简单,就是 不断地从数组中找出最大或者最小的数字,依次放在数组

    2024年02月03日
    浏览(27)
  • 【c语言】--分解质因数【完整版详细】

    首先,我们所说的质数就是素数,两种叫法都可以! 如果一个数的因数是质数,那么这个因数就是他的质因数。 比如: 5的因数:1、5 因数5就是5的质因数。 28的因数:4、7 因数7就是28的质因数。 把一个合数用质数相乘的形式表示出来,叫作分解质因数。他强调的是分解的过

    2024年02月06日
    浏览(32)
  • 洛谷——P1069 [NOIP2009 普及组] 细胞分裂(分解质因数,唯一分解定理)

    Hanks 博士是 BT(Bio-Tech,生物技术)领域的知名专家。现在,他正在为一个细胞实验做准备工作:培养细胞样本。 Hanks 博士手里现在有 N N N 种细胞,编号从 1 ∼ N 1 sim N 1 ∼ N ,一个第 i i i 种细胞经过 1 1 1 秒钟可以分裂为 S i S_i S i ​ 个同种细胞( S i S_i S i ​ 为正整数)。

    2024年01月16日
    浏览(35)
  • c语言——输出一个整数的所有因数

      当对这段代码进行分块分析时,可以将其分为以下几个部分: 第一部分: 这部分代码包含了头文件 stdio.h 和 stdlib.h 的引入以及 main() 函数的定义。定义了一个整型变量 number ,用于存储用户输入的整数。还定义了一个整型变量 i ,用于循环计数。 通过 printf 函数打印出提示

    2024年02月12日
    浏览(32)
  • C++,如何快速的求一个正整数的所有因数的个数?

          首先,让我们看看什么是因数,       定义 :因数是指整数a除以整数b(b≠0) 的商正好是整数而没有余数,我们就说b是a的因数。      好,接下来是问题: 题目描述       给定一个整数n(1n10^9),求出n的因子的个数。      首先我们先看一看 数据范围 。  

    2024年02月12日
    浏览(34)
  • 机器学习实战:Python基于SVD奇异值分解进行矩阵分解(八)

    1.1 奇异值分解 奇异值分解( Singular Value Decomposition,SVD )是一种重要的矩阵分解技术,它可以将一个矩阵分解为三个矩阵的乘积,分别为左奇异矩阵、奇异值矩阵和右奇异矩阵。SVD 的原理可以描述如下: 对于任意 m × n m times n m × n 的矩阵 A A A ,它的 SVD 分解为: A = U $

    2024年02月02日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包