# 题目:将一个正整数分解质因数。例如:输入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方法添加因数;
 num = int(input("请输入一个合数:"))
n = num
list1 = [] for i in range(int(n/2)+1):
# range对象只能是正整数,n/2可能产生小数
# 循环次数:n最大的因子是本身(质数),最小的因子是2,
# 所以最大循环次数n/2即可
for j in range(2,n):
if num%j == 0:
list1.append(j)
num = num//j
break
'''
for j in range(2,n):
# 如果j能被整除,则j是一个因子,但如果j能被整除多次,但只会记录一次;
if num%j == 0:
list1.append(j)
num = num//j
continue
'''
if len(list1)==0:
print("此数是质数,请重新输入另一个数。")
exit()
print(list1)
print('%d='%n,end='')
for k in range(len(list1)):
if k == len(list1)-1:
print('%s'%list1[k])
else:
print('%s*'%list1[k],end='')

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

 def reduceNum(n):
print('{}='.format(n),end='')
if not isinstance(n,int) or n<=0:
# isinstance判断数据n是否为int数据类型;
print('请输入一个正确的数字!')
exit(0)
elif n in [1]:
print('{}'.format(n))
while n not in [1]:
for i in range(2,int(n+1)):
if n%i==0:
n/=i
if n==1:
print(i)
else:
print('{}*'.format(i),end='')
break #reduceNum(-90)
reduceNum(1)

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

191010 python3分解质因数的更多相关文章

  1. python3 分解质因数

    python3 分解质因数 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan num = int(input(&quo ...

  2. java分解质因数

      package test; import java.util.Scanner; public class Test19 { /** * 分析:对n进行分解质因数,应先找到一个最小的质数k * 最小 ...

  3. 程序设计入门——C语言 第6周编程练习 1 分解质因数(5分)

    1 分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. ...

  4. 【python】将一个正整数分解质因数

    def reduceNum(n): '''题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5''' print '{} = '.format(n), : print 'Pleas ...

  5. light oj 1236 分解质因数

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70017#problem/H 题意:求满足1<=i<=j<=n ...

  6. 【基础数学】质数,约数,分解质因数,GCD,LCM

    1.质数: 质数(prime number)又称素数,有无限个.一个大于1的自然数,除了1和它本身外,不能整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数. 2.约数: 如 ...

  7. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m

    给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后 ...

  8. cdoj 1246 每周一题 拆拆拆~ 分解质因数

    拆拆拆~ Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1246 Descri ...

  9. hdu 5428 The Factor 分解质因数

    The Factor  Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/contest ...

随机推荐

  1. [LeetCode] 82. Remove Duplicates from Sorted List II 移除有序链表中的重复项 II

    Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...

  2. 阿里云盾AliYunDun服务IO超高

    停止阿里云盾AliYunDun服务解决大量写磁盘问题-小内存ECS服务器 阿里云数据库在没备案,涉及大量IO操作时会自动启动阿里云盾这个服务,会导致服务器变得很卡,一直持续百分之99,一顿重启没有什么 ...

  3. swoole实现多人游戏的要点

    swoole实现多人游戏的要点 比方说多人在线 要满足以下两点 1 所有玩家的数据要实时更新到服务器数据库数据 2 写个定时器返回数据

  4. 【转帖】MySQL用得好好的,为什么要转ES?

    MySQL用得好好的,为什么要转ES? http://developer.51cto.com/art/201911/605288.htm Elasticsearch作为一款功能强大的分布式搜索引擎,支 ...

  5. 20191210-RobotFramework常见问题解决

    附加-问题解决 1.   执行robot用例的时候提示WebDriverException: Message: invalid argument: can't kill an exited proce ...

  6. php位运算及其高级应用

    我们之前学过逻辑与(&&)      条件1 && 条件2 当两边条件同时成立时候返回1 逻辑或(||)         条件1 || 条件2    当两边条件只要有一 ...

  7. python爬虫-80电子书,爬图片

    ''' 作者:Caric_lee 日期:2018 查看图片 ''' import requests from bs4 import BeautifulSoup r = requests.get(&qu ...

  8. 关于base64的一个小细节

    Base64出现\r\n的问题 前段时间遇到这么一个小问题: 后台接口返回一个图片的base64串,同事拿着这个字符串,找了一个在线图片和Base64字符串互转的工具网站,想将字符串转成图片,死活转不 ...

  9. Celery定时任务细讲

    Celery定时任务细讲 一.目录结构 任务所在目录 ├── celery_task # celery包 如果celery_task只是建了普通文件夹__init__可以没有,如果是包一定要有 │ ├ ...

  10. 阿里企业邮箱smtp设置

    阿里的邮箱没有SMTP授权码信息 SMTP服务器:smtp.mxhichina.com