python输入一个正整数,求该数所有的因数

Python020

python输入一个正整数,求该数所有的因数,第1张

# 2021-05-17 Lukewhile True:num = input("请输入一个正整数:")i = 1num_count = []while i <= int(num):if int(num) % i == 0:num_count.append(i)i += 1print(num + "的公因数有:")print(*num_count)

对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。程序源代码:实例(Python 2.0+)#!/usr/bin/python# -*- coding: UTF-8 -*-def reduceNum(n):print '{} = '.format(n),if not isinstance(n, int) or n <= 0 :print '请输入一个正确的数字 !'exit(0)elif n in [1] :print '{}'.format(n)while n not in [1] : # 循环保证递归for index in xrange(2, n + 1) :if n % index == 0:n /= index # n 等于 n/indexif n == 1:print indexelse : # index 一定是素数print '{} *'.format(index),breakreduceNum(90)reduceNum(100)以上实例输出结果为:90 = 2 * 3 * 3 * 5100 = 2 * 2 * 5 * 5