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中apply函数的用法实例教程
Jul 31 Python
基于python编写的微博应用
Oct 17 Python
修改Python的pyxmpp2中的主循环使其提高性能
Apr 24 Python
在Python中用keys()方法返回字典键的教程
May 21 Python
django实现分页的方法
May 26 Python
Python基于smtplib实现异步发送邮件服务
May 28 Python
python开发之thread实现布朗运动的方法
Nov 11 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
Oct 29 Python
pymongo中group by的操作方法教程
Mar 22 Python
Django框架视图介绍与使用详解
Jul 18 Python
Python装饰器的应用场景代码总结
Apr 10 Python
Python3爬虫中Selenium的用法详解
Jul 10 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通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
jQuery对表单的操作代码集合
2011/04/06 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
Javascript随机标签云代码实例
2016/06/21 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
对vue.js中this.$emit的深入理解
2018/02/23 Javascript
Element-ui table中过滤条件变更表格内容的方法
2018/03/02 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
python获取目录下所有文件的方法
2015/06/01 Python
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
python实现在IDLE中输入多行的方法
2018/04/19 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
Python数据可视化实现正态分布(高斯分布)
2019/08/21 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
Python中and和or如何使用
2020/05/28 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
这段代码难道不该打印出56吗
2013/02/27 面试题
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
《月迹》教学反思
2014/02/19 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
老员工辞职信范文
2015/05/12 职场文书
人民检察院起诉书
2015/05/20 职场文书
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电