|
发表于 2020-5-30 15:21:05
|
显示全部楼层
#将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
#定义一个方法判断这个数是否是素数
def isPrime(num):
flag = 0
if(num == 2):
return True
else:
for i in range(2 , num // 2 +1):
if num % i == 0:
flag = 1
break
if flag == 0:
return True
else:
return False
#定义num 用于接收输入的数字
#定义result 用于接收分解的质因子
num = int(input("请输入一个数字:"))
result = []
#首先判断是否是质因子,如果是直接输出结果
if isPrime(num):
result = [1,num]
else:
for i in range(2,num // 2+1):
#只对质数求余数
if isPrime(i):
#对同一个质数反复求余,直到商对于此质数不能整除(会将每轮求余数的商赋值给num)
while (num % i == 0):
num = num // i
result.append(i)
if isPrime(num):
result.append(num)
break
print(result)
请输入一个数字:1800
[2, 2, 2, 3, 3, 5, 5] |
|