Python实现的质因式分解算法示例

本文实例讲述了Python实现的质因式分解算法。分享给大家供大家参考,具体如下:

本来想实现一个其它的基本数学算法问题,但是发现在实现之前必须得先完成分解质因式的算法。

没有去网上寻找什么比较好的求解算法,纯粹是按照自己的理解写了一个试探性求解算法。也就是在MIT公开课中教授提到的guess-try方法。代码实现如下:

#!/usr/bin/python
def PrimeNum(num):
   r_value =[]
   for i inrange(2,num+1):
      for jin range(2,i):
         ifi % j == 0:
            break
      else:
         r_value.append(i)
   returnr_value
def PrimeFactorSolve(num,prime_list):
   for n inprime_list:
      ifnum % n == 0:
         return[n,num / n]
def PrimeDivisor(num):
   prime_range= PrimeNum(num)
   ret_vale =[]
   while numnot in prime_range:
      factor_list= PrimeFactorSolve(num,prime_range)
      ret_vale.append(factor_list[0])
      num =factor_list[1]
   else:
      ret_vale.append(num)
   printret_vale
PrimeDivisor(120)

程序执行结果如下:

E:\WorkSpace\01_编程语言\03_Python\python_exp07>pythonpython_exp07.py
[2, 2, 2, 3, 5]

抽取测试了其他的数据,从简单的例子计算看,结果还是准确的。

PS:这里再为大家推荐功能相似的本站在线工具供大家参考:

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

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

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

您可能感兴趣的文章:

  • Python实现简单求解给定整数的质因数算法示例
  • Python编程求质数实例代码
  • Python实现将一个正整数分解质因数的方法分析
  • Python 判断是否为质数或素数的实例
  • 使用Python判断质数(素数)的简单方法讲解
  • python实现挑选出来100以内的质数
  • Python编程实现数学运算求一元二次方程的实根算法示例
  • python实现数独算法实例
  • Python实现破解猜数游戏算法示例
(0)

相关推荐

  • Python实现将一个正整数分解质因数的方法分析

    本文实例讲述了Python实现将一个正整数分解质因数的方法.分享给大家供大家参考,具体如下: 遇到一个python编程联系题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 版本一: 开始,没动脑子就开始写了,结果如下代码 #! /usr/bin/python # 014.py import math number = int(raw_input("Enter a number: ")) while number != 1: for i in range(1,

  • Python实现简单求解给定整数的质因数算法示例

    本文实例讲述了Python实现简单求解给定整数的质因数算法.分享给大家供大家参考,具体如下: 接着做题遇到求解质因数分解的问题,思想很简单,就是需要遍历从1到该整数本身,并且判断当数字为质数时加入列表最后输出即可,求解这样的一个正整数的质因数分解,关键在于理解,每次得到一个质因数之后需要更新整数为:原始整数除以这个质因数的值,循环直至原始整数的值小于2终止,输出结果即可,实现如下: #!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒

  • 使用Python判断质数(素数)的简单方法讲解

    质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.素数在数论中有着很重要的地位.比1大但不是素数的数称为合数.1和0既非素数也非合数.质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一.基于质数定义的基础之上而建立的问题有很多世界级的难题,如哥德巴赫猜想等.算术基本定理证明每个大于1的正整数都可以写成素数的乘积,并且这种乘积的形式是唯一的.这个定理的重要一点是,将1排斥在素数集合以外.如果1被认为是素数,那么这些严格的阐述就不得不加上一些限制条

  • Python编程实现数学运算求一元二次方程的实根算法示例

    本文实例讲述了Python编程实现数学运算求一元二次方程的实根算法.分享给大家供大家参考,具体如下: 问题: 请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程:ax² + bx + c = 0的两个解. 实现代码: #!/usr/bin/env python # -*- coding: utf-8 -*- import math def quadratic(a,b,c): if a == 0: raise TypeError('a不能为0') if not is

  • Python编程求质数实例代码

    本文研究的主要是Python编程求质数实例,选取了几个数进行了测试,具体如下. 定义:质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数:否则称为合数. 我们知道自然数(除了0和1以外)都可以写成几个质数相乘再乘以一的格式,所以我们可以用以个数去试一试看看它能否将小于它的质数整除. 首先我们创建一个空的list,然后我们知道2是最小的质数,于是我们把2添加进这个空白的list,之后我们开始循环,第一个数从3开始,用3除以小于3的质数,没有小于它的质数能被它整除,

  • Python 判断是否为质数或素数的实例

    一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除(2, 3, 5, 7等),换句话说就是该数除了1和它本身以外不再有其他的因数. 首先我们来第一个传统的判断思路: def handlerNum(num): # 质数大于 1 if num > 1: # 查看是否有其他因子 for i in range(2, num//2+1): if (num % i) == 0: print(num,"不是质数") break else: print(num, "是质

  • python实现数独算法实例

    本文实例讲述了python实现数独算法的方法.分享给大家供大家参考.具体如下: # -*- coding: utf-8 -*- ''' Created on 2012-10-5 @author: Administrator ''' from collections import defaultdict import itertools a = [ [ 0, 7, 0, 0, 0, 0, 0, 0, 0], #0 [ 5, 0, 3, 0, 0, 6, 0, 0, 0], #1 [ 0, 6, 2

  • python实现挑选出来100以内的质数

    这里给大家分享的是使用python实现将100以内的质数挑选出来 代码非常简单,就不多废话了. """ 使用filter将100以内的质数挑选出来 """ # coding = utf-8 import math def func_get_prime(n): return filter(lambda x: not [x%i for i in range(2, int(math.sqrt(x))+1) if x%i ==0], range(2,n+

  • Python实现破解猜数游戏算法示例

    本文实例讲述了Python实现破解猜数游戏算法.分享给大家供大家参考,具体如下: QQ群里的聊天机器人会发起猜数小游戏. 玩法如下: 1. 用户发 #猜数    到群里 2. 机器人响应: 猜数已经开始, 范围是1-10000之间的某个数 3. 你发送 #猜数[123] 到群里 4. 机器人响应: 大了或者小了, 或者恭喜你猜中了 5. 你根据刚才猜的123, 和返回, 猜一个更小或更大的数, 发送 #猜数[111] , 即返回第2步 那么最好的猜测方法肯定是找居中的数了, 由于心算耗时, 所以

  • Python实现的质因式分解算法示例

    本文实例讲述了Python实现的质因式分解算法.分享给大家供大家参考,具体如下: 本来想实现一个其它的基本数学算法问题,但是发现在实现之前必须得先完成分解质因式的算法. 没有去网上寻找什么比较好的求解算法,纯粹是按照自己的理解写了一个试探性求解算法.也就是在MIT公开课中教授提到的guess-try方法.代码实现如下: #!/usr/bin/python def PrimeNum(num): r_value =[] for i inrange(2,num+1): for jin range(2,

  • Python实现的求解最小公倍数算法示例

    本文实例讲述了Python实现的求解最小公倍数算法.分享给大家供大家参考,具体如下: 简单分析了一下,前面介绍的最大公约数的求解方法跟最小公倍数求解方法类似,只需要改一个简单的条件,然后做一点简单的其他计算.问题的解决也是基于分解质因式的程序. 程序实现以及测试case代码如下: #!/usr/bin/python from collections import Counter def PrimeNum(num): r_value =[] for i in range(2,num+1): for

  • python实现希尔密码加密的示例代码

    目录 原理 实现 原理 希尔密码是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明. 每个字母当作26进制数字:A=0, B=1, C=2- 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果模26.(注意用作加密的矩阵(即密匙)在 必须是可逆的,否则就不可能解码.只有矩阵的行列式和26互质,才是可逆的.) 实现 希尔密码是运用基本矩阵论原理的替换密码,使用一个m*m的矩阵作为密钥,此矩阵必须可逆,解密使用逆矩阵解密. 加密: 密文向量 = 密钥矩阵 * 明

  • python编程羊车门问题代码示例

    问题: 有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么.参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择. 请问: 1.按照你的第一感觉回答,你觉得不换选择能有更高的几率获得汽车,还是换选择能有更高的几率获得汽车?或几率没有发生变化? 答:第一感觉换与不换获奖几率没有发生变化. 2.请自己认真分析一下"不换选择能有更高的几率获得汽车,还是换选择能有更高的几率获得汽车?或几率没有发生变化?" 写出

  • python实现简单中文词频统计示例

    本文介绍了python实现简单中文词频统计示例,分享给大家,具体如下: 任务 简单统计一个小说中哪些个汉字出现的频率最高 知识点 1.文件操作 2.字典 3.排序 4.lambda 代码 import codecs import matplotlib.pyplot as plt from pylab import mpl mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体 mpl.rcParams['axes.unicode_minus

  • python绘制简单折线图代码示例

    1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt.plot(x,y) plt.savefig("easyplot.jpg") 结果如下: 代码解释: #x轴,y轴 x=[0,1] y=[0,1] #创建绘图对象 plt.figure() #在当前绘图对象进行绘图(两个参数是x,y轴的数据) plt.plot(x,y) #保存图象 plt

  • python使用logging模块发送邮件代码示例

    logging模块不只是能记录log,还能发送邮件,使用起来非常简单方便 #coding=utf-8 ''''' Created on 2016-3-21 @author: Administrator ''' import logging, logging.handlers class EncodingFormatter(logging.Formatter): def __init__(self, fmt, datefmt=None, encoding=None): logging.Format

  • selenium python浏览器多窗口处理代码示例

    本文主要研究的是selenium python浏览器多窗口处理的相关内容,分享了操作实例代码,具体如下: #!/usr/bin/python # -*- coding: utf-8 -*- __author__ = 'zuoanvip' #在测试过程中有时候会遇到出现多个浏览器窗口的情况,这时候我们可以通过窗口的句柄来操作不同窗口的元素 from selenium import webdriver import os import time driver =webdriver.Firefox()

  • Python中join函数简单代码示例

    本文简述的是string.join(words[, sep]),它的功能是把字符串或者列表,元组等的元素给拼接起来,返回一个字符串,和split()函数与正好相反,看下面的代码理解. 首先展示下结果吧! 代码分享: a=["豫","N","C8","C89"] b=("豫","N","C8","C89") c="zhang" a

  • Python实现XML文件解析的示例代码

    1. XML简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用.它是web发展到一定阶段的必然产物,既具有SGML的核心特征,又有着HTML的简单特性,还具有明确和结构良好等许多新的特性. test.XML文件 <?xml version="1.0" encoding="utf-8"?> <catalog> <m

随机推荐