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程序设计入门(4)模块和包
Jun 16 Python
Python中的一些陷阱与技巧小结
Jul 10 Python
python 计算文件的md5值实例
Jan 13 Python
Python爬虫DOTA排行榜爬取实例(分享)
Jun 13 Python
python的多重继承的理解
Aug 06 Python
python实现pdf转换成word/txt纯文本文件
Jun 07 Python
Python退火算法在高次方程的应用
Jul 26 Python
Python切片操作去除字符串首尾的空格
Apr 22 Python
pytorch标签转onehot形式实例
Jan 02 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
Django serializer优化类视图的实现示例
Jul 16 Python
python 用Matplotlib作图中有多个Y轴
Nov 28 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/04/08 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
php 猴子摘桃的算法
2017/06/20 PHP
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
jquery任意位置浮动固定层插件用法实例
2015/05/29 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
Jquery表单验证失败后不提交的解决方法
2016/10/18 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
Python打包文件夹的方法小结(zip,tar,tar.gz等)
2016/09/18 Python
设置python3为默认python的方法
2018/10/31 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
python绘制封闭多边形教程
2020/02/18 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
Python+OpenCV图像处理—— 色彩空间转换
2020/10/22 Python
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
品学兼优的大学生自我评价
2013/09/20 职场文书
保密工作责任书
2014/04/16 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python