问题:编写一个可以将任意正整数分解为素数之积的算法.
例如:8=2*2*2,209=11*19
思路:给出整数N,设定d从N-1开始递减,假如N%d等于0,则此时(N/d)是N的一个质因子,同时使N=d,不断迭代,直至d=1。
l=[]
def depart(n):
d = n-1;
while d > 1:
if n % d == 0 :
l.append(int(n/d));
n = d;
d -= 1;
else:
d -= 1;
l.append(n)
return l;
n=int(input());
while n:
l = [];
l = depart(n);
print(l);
n = input();
if n != '':
n = int(n);
程序运行环境Python 3.6 in Pycharm 2017.24
运行程序,输入一个整数,回车,输出一个质因子列表
如: 输入100,输出[2,2,5,5];
输入1946549,输出[11,311,569]