python实例100第14例:将一个正整数分解质因数

**题目:**将一个正整数分解质因数。例如:输入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的值,重复执行第一步。

程序源代码:

python 复制代码
#!/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/index
                if n == 1: 
                    print index 
                else : # index 一定是素数
                    print '{} *'.format(index),
                break
reduceNum(90)
reduceNum(100)

以上实例输出结果为:

90 = 2 * 3 * 3 * 5

100 = 2 * 2 * 5 * 5

相关推荐
vx-程序开发7 分钟前
springboot农产品运输服务平台---附源码75498
java·javascript·spring boot·python·eclipse·django·php
Dxy123931021643 分钟前
python 中的 APScheduler 使用详解
开发语言·python
染指11101 小时前
76.高级RAG-后检索器(时间排序)
人工智能·python·llama_index·llamaindex
Forever Nore2 小时前
LeetCode 1 两数之和
算法·leetcode·职场和发展
To_OC2 小时前
LC 3 无重复字符的最长子串:从入门滑动窗口到优化写法,再也不怕面试官追问
javascript·算法·leetcode
weixin_440784112 小时前
Java基础常见题
java·开发语言·python·java基础
(Charon)2 小时前
【C++】多线程死锁:产生原因、复现与解决方法
开发语言·c++·算法
跨境小彭2 小时前
Python列表去重的6种高效方法(含保留顺序+性能对比)
开发语言·python
今天AI了吗3 小时前
Python 基础语法从入门到使用详解
开发语言·人工智能·python
苏灿烤鱼3 小时前
从微信公众号内容到视频号视频:自动化视频生成的技术实现
人工智能·python·ffmpeg