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实现发送和获取手机短信验证码
Jan 15 Python
图文讲解选择排序算法的原理及在Python中的实现
May 04 Python
Python线程指南详细介绍
Jan 05 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
Python对切片命名的实现方法
Oct 16 Python
python实现一组典型数据格式转换
Dec 15 Python
python文档字符串(函数使用说明)使用详解
Jul 30 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
python如何设置静态变量
Sep 07 Python
jupyter notebook 写代码自动补全的实现
Nov 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
Ajax PHP简单入门教程代码
2008/04/25 PHP
php的大小写敏感问题整理
2011/12/29 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
Javascript 模式实例 观察者模式
2009/10/24 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
分享15个最受欢迎的Python开源框架
2014/07/13 Python
详解python3中zipfile模块用法
2018/06/18 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
通过PYTHON来实现图像分割详解
2019/06/26 Python
python适合人工智能的理由和优势
2019/06/28 Python
python实现统计代码行数的小工具
2019/09/19 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
python实现猜数游戏
2020/03/27 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
Pycharm Git 设置方法
2020/09/15 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
艺术应用与设计专业个人的自我评价
2013/11/19 职场文书
求职自荐信范文格式
2013/11/29 职场文书
《识字五》教学反思
2014/03/01 职场文书
学习计划书怎么写
2014/09/15 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
建筑工程催款函
2015/06/24 职场文书
vue 自定义组件添加原生事件
2022/04/21 Vue.js
PYTHON基于Pyecharts绘制常见的直角坐标系图表
2022/04/28 Python