数的因子分解
"""
name: wzl
date: 2020/1/10
task: 数的因子分解
"""
import math
def is_prim(num): #判断素数
is_prime = True
for i in range(2,int(math.sqrt(num))+1):
if num%i==0:
is_prime = False
break
if is_prime and num!=1:
return True
else:
return False
#36 = 2*2*3*3
#56 = 2*2*2*7
# edit
def factor_split(num):
result = [] #定义空列表存放因子
while not is_prim(num):
for i in range(2,num):
if num%i==0:
result.append(i)
break
num = num//i
result.append(num)
return'*'.join(str(j) for j in result)
number = int(input('please enter the number: '))
if is_prim(number):
print('{}=1*{}'.format(number,number))
else:
answer = factor_split(number)
print(str(number)+'='+answer)
please enter the number: 56
56=2*2*2*7
这个函数比较复杂,首先要判断素数,如果是素数,因子分解为 1 乘以它本身,如果不是素数,再进一步分解为素数相乘。