Python实现正整数分解质因数操作示例


Posted in Python onAugust 01, 2018

本文实例讲述了Python实现正整数分解质因数操作。分享给大家供大家参考,具体如下:

遇到一个Python编程练习题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
def div_func(n):
  result = []
  while True:
    for i in xrange(2, int(n**0.5) + 1):
      if n % i == 0:
        result.append(i)
        n /= i
        break
    else:
      result.append(n)
      break
  return ' * '.join(map(str, result))
num = raw_input('please enter a number( < 1.0E+18):')
try:
  int_num = int(num)
  if int_num > 10**18 or int_num < 0:
    raise ValueError()
  print div_func(int_num)
except ValueError:
  print 'invalid number'

please enter a number( < 1.0E+18):123124324324134334
2 X 293 X 313 X 362107 X 1853809

自己写的,完全没有参考网上其它人的算法。结果和大家都差不多。

另外还可以用递归方法:

def factor(num):
  if num == 1:
    return []
  else:
    for i in range(2, num+1):
      n, d = divmod(num, i)
      if d == 0:
        return [i] + factor(n)
for test_num in (299, 1024, 20, 7):
  print(test_num, '->', ' * '.join(map(str, factor(test_num))))

299 -> 13 * 23
1024 -> 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2
20 -> 2 * 2 * 5
7 -> 7

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线分解质因数计算器工具:
http://tools.3water.com/jisuanqi/factor_calc

在线一元函数(方程)求解计算工具:
http://tools.3water.com/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.3water.com/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.3water.com/jisuanqi/jsq

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
pycharm 使用心得(四)显示行号
Jun 05 Python
Python高级应用实例对比:高效计算大文件中的最长行的长度
Jun 08 Python
详解Django框架中用户的登录和退出的实现
Jul 23 Python
Python用UUID库生成唯一ID的方法示例
Dec 15 Python
Python实现针对含中文字符串的截取功能示例
Sep 22 Python
Python视频爬虫实现下载头条视频功能示例
May 07 Python
利用Python如何制作好玩的GIF动图详解
Jul 11 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
用Pelican搭建一个极简静态博客系统过程解析
Aug 22 Python
python中如何实现将数据分成训练集与测试集的方法
Sep 13 Python
python pprint模块中print()和pprint()两者的区别
Feb 10 Python
Virtualenv 搭建 Py项目运行环境的教程详解
Jun 22 Python
Python列表生成式与生成器操作示例
Aug 01 #Python
Python开发最牛逼的IDE——pycharm
Aug 01 #Python
django从请求到响应的过程深入讲解
Aug 01 #Python
python3.6的venv模块使用详解
Aug 01 #Python
从请求到响应过程中django都做了哪些处理
Aug 01 #Python
Python WSGI的深入理解
Aug 01 #Python
Django进阶之CSRF的解决
Aug 01 #Python
You might like
浅谈php冒泡排序
2014/12/30 PHP
PHP中__autoload和Smarty冲突的简单解决方法
2016/04/08 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
脚手架vue-cli工程webpack的作用和特点
2018/09/29 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
使用python为mysql实现restful接口
2018/01/05 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
Python3使用SMTP发送带附件邮件
2020/06/16 Python
Python IDLE清空窗口的实例
2018/06/25 Python
python 输出所有大小写字母的方法
2019/01/02 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
Hunkemöller瑞士网上商店:欧洲最大的内衣品牌之一
2018/12/03 全球购物
护士实习自我鉴定
2013/10/22 职场文书
拾金不昧的表扬信
2014/01/16 职场文书
入党自我评价范文
2014/02/02 职场文书
蛋糕店创业计划书
2014/05/06 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
清洁员岗位职责
2015/02/15 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
详解nginx location指令
2022/01/18 Servers