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实现破解猜数游戏算法示例
相关推荐
-
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
随机推荐
- AngularJS中下拉框的基本用法示例
- PHP开发者必须掌握的6个关键字
- 漂亮的js tab图片轮换效果代码(可自定义的幻灯片和图片缓冲切换)
- Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
- 学习黑客必须要掌握的DOS命令全集第1/2页
- Java的MyBatis框架中MyBatis Generator代码生成器的用法
- 用Command对象和RecordSet对象向数据库增加记录哪一个更好
- php下过滤html代码的函数 提高程序安全性
- JSP 中Spring组合注解与元注解实例详解
- c++回调之利用函数指针示例
- MySQL replace into 语句浅析(二)
- MySql存储过程之逻辑判断和条件控制
- JQuery中Text方法用法实例分析
- 在jQuery 1.5中使用deferred对象的代码(翻译)
- React学习笔记之列表渲染示例详解
- JavaScript极简入门教程(一):基础篇
- nginx重写rewrite基础及实例分享
- dedecms v5 跳转网址 直接链接而非跳转的实现方法修正版 原创
- 普通对象使用spring容器中的对象的实现方法
- 使用numpy和PIL进行简单的图像处理方法