分享:如何分解质因数之python实现(例如90分解质因数:90=2x3x3x5)
这是一道很老的题了,面试时很有可能回遇到。我整理了一下思路,于是有了下面的代码:
# -*- coding: UTF-8 -*-
def prime_Factor(n):
n = int(n)
for i in range(2, n//2+1): #由于最小的质数是2,所以最大的遍历次数是一半就行了,为了保证遍历到最后一个元素要 +1
if n % i == 0:
l.append(i) #笔者认为一个数除去1和它本身外,一定能被2,3,5,7,13,17...等其中一个或多个质数整除,所以i就是质因数。
return prime_Factor(n/i) #递归调用函数,传入原数除以第一个质因数的商,以此类推
l.append(n) #最后一个质因数,因为range范围 n//2 + 1的限制,最后一个质因数,你无法取到,所以,最后要添加上
return l
if __name__ == "__main__":
n = input('please input a number:')
l = []
L = prime_Factor(n)
st = str(n)+'='
for i in L:
st = st + str(i) + 'x'
print(st[:-1])
笔试题里往往是这样写的:请写代码分解质因数,如输入90,打印输出:90=2x3x3x5
哈,你找出质因数还不行,还得是那种输出格式,呵呵。。。
笔者的思路是:
1.创建一个空列表,用于存放找出来的质因数,方便打印要求的格式。
2.定义函数prime_Factor(n),找到所有质因数,append到列表中,对于代码部分,看注释。
3.遍历列表,拼接字符串,由于最后一个数字也拼了一个 ‘x’ ,所以打印输出的时候可以用切片的方式去除最后一个‘x’。
如果不切片,会变成90=2x3x3x5x 这样,笔者没想到其他方法。有其他方法的大佬,有幸看到我的博客,望告诉小弟啊。
分享:如何分解质因数之python实现(例如90分解质因数:90=2x3x3x5)相关推荐
- 分解 python_面试官:如何用Python实现将一个整数分解成质因数?
概述 今天主要分享一个关于分解质因数的实例,判断的逻辑稍微多了点,一起来看看吧~ 需求 将一个整数分解质因数.例如:输入90,打印出90=233*5 思路 其实根本不需要判断是否是质数,从2开始向数本 ...
- Python判断质数合数,质因数分解并得到所有因数
Python判断质数合数,质因数分解并得到所有因数 判断质数.合数 质因数分解 得到所有正因数 完整程序 运行效果 判断质数.合数 要判断一个大于一的正整数是质数还是合数,只需判断在区间[2, √x] ...
- python 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
# 将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5.n = int(input('请输入需要分解的正数:')) # 创建一个列表用来存放遍历出来的因数 lt = [] # 给n换个 ...
- Python编程之正整数分解
问题描述:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因 ...
- Python培训教程分享:visual studio编写python怎么样?
本期小编要为大家介绍的Python培训教程就是关于"visual studio编写python怎么样?"的问题,但答案当然是可以的,据了解,vs2017.vs2019都集成了pyt ...
- Python培训教程分享:“高效实用” 的Python工具库
作为一名合格Python技术员,对于Python工具库的使用是少不了的,本期Python培训教程就为大家分享的是""高效实用" 的Python工具库",希望能够 ...
- 简明python教程 豆瓣-福利分享:个人整理的Python书单,从基础到进阶
原标题:福利分享:个人整理的Python书单,从基础到进阶 我挑选的一些书籍,大家可以自行到书店或是网上自己选购.也由于个人水平有限,很可能大家觉得优秀的书籍没有列出,如果大家有觉得不错的书籍,欢迎大 ...
- python网络爬虫权威指南 豆瓣_福利分享:个人整理的Python书单,从基础到进阶...
原标题:福利分享:个人整理的Python书单,从基础到进阶 我挑选的一些书籍,大家可以自行到书店或是网上自己选购.也由于个人水平有限,很可能大家觉得优秀的书籍没有列出,如果大家有觉得不错的书籍,欢迎大 ...
- Python中矩阵SVD分解及还原
python中SVD分解及还原: import numpy as np from numpy import linalg as la S = np.zeros([5,5]) A=np.random.r ...
- matlab和python中的svd分解的区别
matlab中的svd分解中 得到的第三项是V, 代码如下: A=[1 2 3 4 5 6 7 8 9; 5 6 7 8 9 0 8 6 7; 9 0 8 7 1 4 3 2 1; 6 4 2 1 3 ...
最新文章
- 桶排序算法(基于Java实现)
- 阿里云ECS使用SSH连接CentOS 6.9经常断线的问题解决:OperationTimedOut
- 如何正确创建DLL和使用DLL
- android微信支付坑,微信支付踏坑之旅
- python底层源码_大师兄的Python机器学习笔记:统计学基础之底层代码实现(一)...
- 关于云计算的讨论,一年就等这一回!
- 剑指offer最新版_剑指offer第二版速查表
- 5G关键技术之NFV
- ubuntu PHP Cannot adopt OID in UCD-SNMP-MIB
- eclipse快捷方式打不开解决方法
- 什么是电影衍生品,电影衍生品是用来干嘛的?
- DAOS 源码解析之 daos_pool
- MATLAB矩阵相关函数学习--中级函数
- 华为社会招聘面试流程
- 重写Github的TreeTableView库实现定制显示子节点
- CodingTrip - 携程编程大赛 (预赛第二场)
- 原创 | 自学编程,我该如何寻找自学资源?
- WebMatrix学习研究
- 安装window10时没选XPS,现在怎么安装
- 文献翻译__tvreg v2:用于去噪、反卷积、修复和分割的变分成像方法(部分)