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脚本
Sep 01 Python
Python入门篇之编程习惯与特点
Oct 17 Python
Django框架中render_to_response()函数的使用方法
Jul 16 Python
Python如何生成树形图案
Jan 03 Python
python3 破解 geetest(极验)的滑块验证码功能
Feb 24 Python
Python lxml解析HTML并用xpath获取元素的方法
Jan 02 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
解决pycharm不能自动保存在远程linux中的问题
Feb 06 Python
pyx文件 生成pyd 文件用于 cython调用的实现
Mar 04 Python
golang特有程序结构入门教程
Jun 02 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部分常见问题总结
2008/03/27 PHP
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
PHP代码优化的53个细节
2014/03/03 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
用 javascript 实现的点击复制代码
2007/03/24 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
微信小程序button标签open-type属性原理解析
2020/01/21 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
Python单体模式的几种常见实现方法详解
2017/07/28 Python
Python3.6简单操作Mysql数据库
2017/09/12 Python
python顺序的读取文件夹下名称有序的文件方法
2018/07/11 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
python实现粒子群算法
2020/10/15 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
自我鉴定模板
2013/10/29 职场文书
社区安全检查制度
2014/02/03 职场文书
预防煤气中毒方案
2014/06/16 职场文书
建筑施工安全生产责任书
2014/07/22 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
社区服务活动报告
2015/02/05 职场文书
监护人证明
2015/06/19 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python
opencv用VS2013调试时用Image Watch插件查看图片
2021/07/26 Python
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js