python找出因数与质因数的方法


Posted in Python onJuly 25, 2019

最近有一个学弟问我一些求解质因数的问题,帮他解决问题的同时自己也试着写了几个差不多效果的脚本,有很多不同的思路,以下是相关脚本。

n = int(input("input number: ")) # 输入数字
fac = [] # 定义一个列表存放因子
for i in range(2, n): # 这里的逻辑和你一样
  if n % i == 0:
    fac.append(i) # 如果是因子就放进去
    continue
  else:
    pass
if len(fac) == 0: # 判断一下
  print("prime!")
else:
  print(fac)

这个是将所有的因数都放在一个列表里的做法。

def isprime(n): # 一个判断质数的方法,如果是质数,就返回这个数,如果不是质数,就什么也不返回
  for i in range(2, n):
    if n % i == 0:
      break
  else:
    return n 
 
num = int(input("input number: ")) # 输入一个数,存为num
i = 1 # 设置哨兵变量为1
if num >= 2: # 首先判断num是否符合判断条件
 
  while i <= num: # 注意这里一定要用while语句循环,因为哨兵变量最后要被更新
    i += 1 # i = i + 1 尝试遍历从1到num的所有数
    if num % i == 0: # 如果i是他的因子
      print(isprime(i)) # 先看这个因子是不是质数,是就输出
      num = num / i # 此时更新一下num
      # print("num is %s now!" % num) # 可以看看现在num是多少
      i = 1 # 记得把哨兵重新设置为1,这样循环才会更新,我一开始用for语句循环,发现没法从头开始循环
      pass # 继续
    else:
      pass # 若i不是num的因子,跳过
else:
  print("error") # 不符合条件,就输出错误

这是质因数分解的做法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
Jun 23 Python
django 将model转换为字典的方法示例
Oct 16 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
浅谈python中get pass用法
Mar 19 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
Jun 11 Python
对numpy下的轴交换transpose和swapaxes的示例解读
Jun 26 Python
python实现多进程通信实例分析
Sep 01 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
Python银行系统实战源码
Oct 25 Python
python如何实现DES加密
Sep 21 Python
python 三种方法实现对Excel表格的读写
Nov 19 Python
Python编程super应用场景及示例解析
Oct 05 Python
HTML的form表单和django的form表单
Jul 25 #Python
Python3 批量扫描端口的例子
Jul 25 #Python
python3 批量获取对应端口服务的实例
Jul 25 #Python
Python实现微信小程序支付功能
Jul 25 #Python
Form表单及django的form表单的补充
Jul 25 #Python
python实现切割url得到域名、协议、主机名等各个字段的例子
Jul 25 #Python
python按修改时间顺序排列文件的实例代码
Jul 25 #Python
You might like
php一维二维数组键排序方法实例总结
2014/11/13 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
PHP实现简单的计算器
2020/08/28 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
浅谈JS中的常用选择器及属性、方法的调用
2017/07/28 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
python实现屏保计时器的示例代码
2018/08/08 Python
python斐波那契数列的计算方法
2018/09/27 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
python plotly绘制直方图实例详解
2019/07/22 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
广告学专业应届生求职信
2013/10/01 职场文书
会计自我鉴定
2014/02/04 职场文书
小学生新年寄语
2014/04/03 职场文书
2014年外贸业务员工作总结
2014/12/11 职场文书
募捐感谢信
2015/01/22 职场文书
酒会邀请函
2015/01/31 职场文书
社区干部培训心得体会
2016/01/06 职场文书
一篇文章带你复习java知识点
2021/06/28 Java/Android