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数据类型转换函数总结
Mar 11 Python
python实现批量获取指定文件夹下的所有文件的厂商信息
Sep 28 Python
简介Django中内置的一些中间件
Jul 24 Python
python函数形参用法实例分析
Aug 04 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
python中日志logging模块的性能及多进程详解
Jul 18 Python
pandas计算最大连续间隔的方法
Jul 04 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 Python
python进行二次方程式计算的实例讲解
Dec 06 Python
全网最细 Python 格式化输出用法讲解(推荐)
Jan 18 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
WHOIS类的修改版
2006/10/09 PHP
PHP中防止SQL注入实现代码
2011/02/19 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
js 控制图片大小核心讲解
2013/10/09 Javascript
通过action传过来的值在option获取进行验证的方法
2013/11/14 Javascript
取得元素的左和上偏移量的方法
2014/09/17 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
Vue弹出菜单功能的实现代码
2018/09/12 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
详解jquery和vue对比
2019/04/16 jQuery
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
[02:01]BBC DOTA2国际邀请赛每日综述:八强胜者组鏖战,中国队喜忧参半
2014/07/19 DOTA
跟老齐学Python之玩转字符串(3)
2014/09/14 Python
Python判断操作系统类型代码分享
2014/11/22 Python
python中执行shell的两种方法总结
2017/01/10 Python
Python如何发布程序的详细教程
2018/10/09 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
python计算二维矩形IOU实例
2020/01/18 Python
matlab中imadjust函数的作用及应用举例
2020/02/27 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
英国地毯卖家:The Rug Seller
2019/07/18 全球购物
strstr()的简单实现
2013/09/26 面试题
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
英文导游欢迎词
2014/01/11 职场文书
爽歪歪广告词
2014/03/20 职场文书
党建工作经验交流材料
2014/05/25 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android