• 191010 python3分解质因数


    # 题目:将一个正整数分解质因数。例如:输入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的值,重复执行第一步。
    方法一:利用列表append方法添加因数;
     1 num = int(input("请输入一个合数:"))
     2 n = num
     3 list1 = []
     4 
     5 for i in range(int(n/2)+1):
     6     # range对象只能是正整数,n/2可能产生小数
     7     # 循环次数:n最大的因子是本身(质数),最小的因子是2,
     8     # 所以最大循环次数n/2即可
     9     for j in range(2,n):
    10         if num%j == 0:
    11             list1.append(j)
    12             num = num//j
    13             break
    14 '''
    15 for j in range(2,n):    
    16     # 如果j能被整除,则j是一个因子,但如果j能被整除多次,但只会记录一次;
    17     if num%j == 0:
    18         list1.append(j)
    19         num = num//j
    20         continue
    21 '''
    22 if len(list1)==0:
    23     print("此数是质数,请重新输入另一个数。")
    24     exit()
    25 print(list1)
    26 print('%d='%n,end='')
    27 for k in range(len(list1)):
    28     if k == len(list1)-1:
    29         print('%s'%list1[k])
    30     else:
    31         print('%s*'%list1[k],end='')
    View Code

    方法二:利用format方法添加因数;

     1 def reduceNum(n):
     2     print('{}='.format(n),end='')
     3     if not isinstance(n,int) or n<=0:
     4         # isinstance判断数据n是否为int数据类型;
     5         print('请输入一个正确的数字!')
     6         exit(0)
     7     elif n in [1]:
     8         print('{}'.format(n))
     9     while n not in [1]:
    10         for i in range(2,int(n+1)):
    11             if n%i==0:
    12                 n/=i
    13                 if n==1:
    14                     print(i)
    15                 else:
    16                     print('{}*'.format(i),end='')
    17                 break
    18 
    19 #reduceNum(-90)
    20 reduceNum(1)
    View Code

     参见菜鸟教程:https://www.runoob.com/python/python-exercise-example14.html

  • 相关阅读:
    node.js+mysql接口入门
    input边写边验证?正则表达式写在属性里?小技巧
    创建vue,react项目
    jquery在网页中加载本地json文件
    OpenFeigin服务接口调用
    Ribbon负载均衡服务调用
    Consul服务注册与发现
    Eureka服务注册与发现
    springboot项目在idea实现热部署
    设计模式——单例模式
  • 原文地址:https://www.cnblogs.com/jakye/p/11647574.html
Copyright © 2020-2023  润新知