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 读入多行数据的实例
Apr 19 Python
python 数字类型和字符串类型的相互转换实例
Jul 17 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
Django获取应用下的所有models的例子
Aug 30 Python
python tkinter组件使用详解
Sep 16 Python
Python 过滤错误log并导出的实例
Dec 26 Python
基于python图像处理API的使用示例
Apr 03 Python
Python流程控制语句的深入讲解
Jun 15 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
Aug 11 Python
Python Pillow(PIL)库的用法详解
Sep 19 Python
python自动化测试三部曲之request+django实现接口测试
Oct 07 Python
用Python爬虫破解滑动验证码的案例解析
May 06 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面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
php实现背景图上添加圆形logo图标的方法
2016/11/17 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
js中iframe调用父页面的方法
2014/10/30 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
Ionic快速安装教程
2016/06/03 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
js实现导航吸顶效果
2017/02/24 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
介绍Python中的__future__模块
2015/04/27 Python
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
详解Python用三种方式统计词频的方法
2019/07/29 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
Canvas波浪花环的示例代码
2020/08/21 HTML / CSS
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
说出数据连接池的工作机制是什么?
2013/04/19 面试题
英语专业毕业生自荐信范文
2013/12/31 职场文书
党性分析材料格式
2014/12/19 职场文书
换届选举主持词
2015/07/03 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书