zoukankan      html  css  js  c++  java
  • python分解质因数

    将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

    # !/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author:Hiuhung Wan
    
    num = input("请输入一个合数:")
    if num.isdigit():
        num = int(num)
    else:
        print("输入非法,请输入一个合数")
        exit()
    
    if num < 2:
        print("请输入一个大于2的合数")
        exit()
    
    def isZhishu(num):  # 判断是否是质数
        for i in range(2, num):
            if num % i == 0:  # 不是质数
                return False
        else:
            return True
    
    l0 = []
    def fenjie(num):
        i = 2
        while i < num + 1:
            if num % i == 0:
                l0.append(i)
                num /= i
            else:
                i += 1
    
    
    if not isZhishu(num):
        fenjie(num)
        str0 = ''
        for i in l0:
            str0 = str0 + str(i) + "*"
        str0 = str0[:-1]  # 去掉最后一个星号
        print("%s=%s" % (num, str0))
    else:
        print("%s是一个质数,请输入一个合数" %num)
    

      判断是否质数的方法,可以优化一下

    from math import sqrt
    def is_prime(n):
        if n == 1:
            return False
        for i in range(2, int(sqrt(n))+1):
            if n % i == 0:
                return False
        return True
    

      

  • 相关阅读:
    上传文件
    Python中@staticmethod和@classmethod的作用和区别
    面向对象 类
    成员修饰符
    class 类 笔记
    模块&包
    java 文件上传下载
    redis 基本操作命令
    redis 和 mysql 的主从复制
    mysql的日志文件及其作用
  • 原文地址:https://www.cnblogs.com/hiuhungwan/p/10372503.html
Copyright © 2011-2022 走看看