设计一个算法,将一个正整数分解质因数。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,输出即可。 (2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 根据上述算法思想,补全下列代码。 输入输出示例:当n=105,输出:105= 3*5*7 当n=60,输出:60= 2*2*3*5 def fun(n): print('%d='%n,end=' ') for i in ① : while n!=i: if n>i and ② : print(i,end='*') ③ else: break else: ④ break if __name__ == "__main__": while True: num=input("输入一个正整数:") if not num.isdigit(): break fun(int(num))
正确答案:补全答案:①range(2,n+1) ②n%i==0 ③n//=i ④print(i)。核心:从最小质数2起,能整除则输出质因数并除尽,否则i+1,直到n==i输出最后一个。
试卷来源:202103 青少年软件编程等级考试Python四级真题