python因数分解函数 python因数分解算法

使用python将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。应该要怎么做?

对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

成都创新互联公司-成都网站建设公司,专注网站建设、网站设计、网站营销推广,空间域名,虚拟主机,网站改版维护有关企业网站制作方案、改版、费用等问题,请联系成都创新互联公司

(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

程序源代码:

实例(Python 2.0+)

#!/usr/bin/python

# -*- coding: UTF-8 -*-

def reduceNum(n):

print '{} = '.format(n),

if not isinstance(n, int) or n = 0 :

print '请输入一个正确的数字 !'

exit(0)

elif n in [1] :

print '{}'.format(n)

while n not in [1] : # 循环保证递归

for index in xrange(2, n + 1) :

if n % index == 0:

n /= index # n 等于 n/index

if n == 1:

print index

else : # index 一定是素数

print '{} *'.format(index),

break

reduceNum(90)

reduceNum(100)

以上实例输出结果为:

90 = 2 * 3 * 3 * 5100 = 2 * 2 * 5 * 5

Python求因数分解

def m(n):

ret = []

while n  1:

for i in range(n-1):

k = i+2

if n % k == 0:

ret.append(k)

n = int(n / k)

break

print(ret)

m(20)就可以输出20的因式分解了。

至于如何处理成^就比较简单了,可以用 Counter 自己处理下。

求Python的质因数分解

x=eval(input("请输入小于1000的整数:"))

k=2

print(x,"=",end="")

while x1:

if x%k==0:

  print(k,end="")

  x=x/k

  if x1:

      print("*",end="")

else:

  k=k+1


分享标题:python因数分解函数 python因数分解算法
本文链接:http://pwwzsj.com/article/dojpgie.html