Python实现的对一个数进行因式分解操作示例

yipeiwu_com6年前Python基础

本文实例讲述了Python实现的对一个数进行因式分解操作。分享给大家供大家参考,具体如下:

在数学中,我们可能会对一个数进行因式分解,如何用Python来实现呢?以下是某位大佬写的算法,这里拿过来直接用就可以了。

# 对一个数进行因式分解
def factorization(num):
  factor = []
  while num > 1:
    for i in range(num - 1):
      k = i + 2
      if num % k == 0:
        factor.append(k)
        num = int(num / k)
        break
  return factor

我们调用这个函数,并引入time库进行时间计算

st = time.perf_counter()
print(factorization(707829217))
et = time.perf_counter()
print("用时:", et - st)

可以看到最后的打印结果为:

[8171, 86627]
用时: 0.0064456

可以看到因式分解还是非常快的,所以在这里非常感谢这位大佬啦~

最后附上完整版,供大家使用(复制到你的IDE中,然后只要修改数字即可)

import time
# 对一个数进行因式分解
def factorization(num):
  factor = []
  while num > 1:
    for i in range(num - 1):
      k = i + 2
      if num % k == 0:
        factor.append(k)
        num = int(num / k)
        break
  return factor
st = time.perf_counter()
print(factorization(707829217))
et = time.perf_counter()
print("用时:", et - st)

运行结果:

[8171, 86627]
用时: 0.039954294630645655

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线分解质因数计算器工具:
http://tools.jb51.net/jisuanqi/factor_calc

在线一元函数(方程)求解计算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

PyQt5重写QComboBox的鼠标点击事件方法

最近学PyQt5,想要做一个串口调试助手来练练手,之前用了正点原子的串口上位机,觉得点击ComboBox自动检测串口这个功能很棒,之前用QT5写串口调试助手的时候也想加入这个功能,但是一...

python利用openpyxl拆分多个工作表的工作簿的方法

python利用openpyxl拆分多个工作表的工作簿的方法

实现按目录拆分工作簿,源数据如下图 按目录拆分成N个文件。 上代码,没有找是否有整个sheet 复制的,先逐个cell复制解决问题。: # encoding: utf-8 """...

对python 操作solr索引数据的实例详解

对python 操作solr索引数据的实例详解

测试代码1: def test(self): data = {"add": {"doc": {"id": "100001", "*字段名*": u"我是一个大好人"}}} p...

浅谈python和C语言混编的几种方式(推荐)

Python这些年风头一直很盛,占据了很多领域的位置,Web、大数据、人工智能、运维均有它的身影,甚至图形界面做的也很顺,乃至full-stack这个词语刚出来的时候,似乎就是为了描述它...

python中getaddrinfo()基本用法实例分析

本文实例讲述了python中getaddrinfo()基本用法。分享给大家供大家参考。具体如下: import sys, socket result = socket.getaddr...