python显示给定数字因数分解_Python练习题,分解质因数:将一个整数分解为质因数乘积,如90=2*3*3*5...

Python练习题,分解质因数:将一个整数分解为质因数乘积,如90=233*5

代码一:

k=[]#创建一个列表存放质因数

def su(n):#判断素数的函数

for i in range(2,n):

if (n%i==0):

return 0

else:

continue

return 1

def fen(n):#将数分开

for j in range(n):#控制循环次数

for i in range (2,n):#进行内层循环找出n的因数

if n%i==0:

if su(i):

k.append(i);n=n//i

if su(n):#判断此时的n是否为素数

k.append(n)

break

n=int(input())

fen(n)

s=len(k)

print(n,'=',k[0],end='')

for i in range(1,s):

print('*%d'%k[i],end='')

代码二:

def su(x):#判断一个数是不是质数

for i in range(2, x - 1):

if (x % i == 0):

return 0

else:

continue

return 1

def fen(x):#将输入数字作因数分解,得到质因数和剩余值

for i in range(2, x - 1):

if (x % i == 0):

if (su(i) == 1):

return i, x // i

return 1, x

k = int(input('输入一个数字'))

print( k, '=',end='')

cheng, yu = fen(k)

while (cheng != 1):

print (cheng, '*',end='')

cheng, yu = fen(yu)

print(yu)

代码三:(时间复杂度低)

def isprime(n):

count = 0

for i in range(1, int(n//2 + 1)):

if n % i == 0:

count += 1

if count == 1:

return True

else:

return False

def main():

num = eval(input())

a = int(num)

i = 2

formula = ''

while not isprime(num):

if isprime(i) and num % i == 0:

formula += str(i) + '*'

num /= i

else:

i += 1

formula += str(int(num))

print('{0} = {1}'.format(a, formula))

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值