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 16 Python
最基础的Python的socket编程入门教程
Apr 23 Python
Python的Django框架中TEMPLATES项的设置教程
May 29 Python
Python中字典映射类型的学习教程
Aug 20 Python
Python的网络编程库Gevent的安装及使用技巧
Jun 24 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
对Python信号处理模块signal详解
Jan 09 Python
python使用PyQt5的简单方法
Feb 27 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
基于python模拟bfs和dfs代码实例
Nov 19 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下目前为目最全的CURL中文说明
2010/08/01 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
Smarty保留变量用法分析
2016/05/23 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
关于laravel模板中生成URL的几种模式总结
2019/10/18 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
2013/12/16 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
2015/11/06 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
使用layer弹窗,制作编辑User信息页面的方法
2019/09/27 Javascript
Vuex中的Mutations的具体使用方法
2020/06/01 Javascript
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
python next()和iter()函数原理解析
2020/02/07 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
一些PHP的面试题
2015/05/06 面试题
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
农村婚礼证婚词
2014/01/10 职场文书
新学期红领巾广播稿
2014/01/14 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
社区党建工作方案
2014/06/10 职场文书
2015年政教主任工作总结
2015/07/23 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang