例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
代码演示:
num = int(input("请输入一个正整数:"))
a_list = list(range(2,num + 1))#使用range()创建数字列表
for i in range(2,num + 1):
for j in range(2,i):
if i % j == 0:
a_list.remove(i)#remove() 函数用于移除列表中某个值的第一个匹配项
break#break 语句可以跳出 for 和 while 的循环体
print("正整数分解质因数:%d="%num , end = "")
max_one = max(a_list)
min_one = min(a_list)
if num == max(a_list):
print(num)
else:
while num >= min_one:
for g in a_list:
if num % g == 0:
print(g,end = "")
break
num = num / g
if num != 1:
print("*",end = "")
结果演示:
请输入一个正整数:8
正整数分解质因数:8=2*2*2
题目来源:
https://fishc.com.cn/forum.php?mod=viewthread&tid=84853&ctid=588