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 相关文章推荐
使用Python判断IP地址合法性的方法实例
Mar 13 Python
详解python并发获取snmp信息及性能测试
Mar 27 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
Python数据分析库pandas基本操作方法
Apr 08 Python
Python 读取指定文件夹下的所有图像方法
Apr 27 Python
matplotlib实现热成像图colorbar和极坐标图的方法
Dec 13 Python
5分钟 Pipenv 上手指南
Dec 20 Python
python实现五子棋小游戏
Mar 25 Python
python关于调用函数外的变量实例
Dec 26 Python
基于python+selenium的二次封装的实现
Jan 06 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
Jun 29 Python
matplotlib实现数据实时刷新的示例代码
Jan 05 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 API接口必备之输出json格式数据示例代码
2017/06/27 PHP
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
jQuery实现长按按钮触发事件的方法
2015/02/02 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
js获取页面description的方法
2015/05/21 Javascript
浅谈JavaScript中null和undefined
2015/07/09 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
浅谈JavaScript 声明提升
2020/09/14 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
[01:06:18]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第二场 1月26日
2021/03/11 DOTA
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
MySQL最常见的操作语句小结
2015/05/07 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
Html5 实现微信分享及自定义内容的流程
2019/08/20 HTML / CSS
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
土木工程师岗位职责
2013/11/24 职场文书
大学生未来职业生涯规划书
2014/02/15 职场文书
原料仓管员岗位职责
2014/04/12 职场文书
股东协议书
2014/04/14 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android