百度在线笔试编程测试题(Python):整数分解成素数的积

来源:互联网 发布:源码生成器 编辑:程序博客网 时间:2024/06/05 10:26

问题:编写一个可以将任意正整数分解为素数之积的算法.
例如: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]

原创粉丝点击