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备份文件以及mysql数据库的脚本代码
Jun 10 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
python获取局域网占带宽最大3个ip的方法
Jul 09 Python
Tensorflow简单验证码识别应用
May 25 Python
Python字符串拼接的几种方法整理
Aug 02 Python
centos7之Python3.74安装教程
Aug 15 Python
Django模板导入母版继承和自定义返回Html片段过程解析
Sep 18 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
基于Python绘制子图及子图刻度的变换等的问题
May 23 Python
Python实现生活常识解答机器人
Jun 28 Python
你需要掌握的20个Python常用技巧
Feb 28 Python
使用Python解决图表与画布的间距问题
Apr 11 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新手上路(四)
2006/10/09 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
2012/12/28 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
php封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
jquery实现树形菜单完整代码
2015/12/29 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中的zip函数使用示例
2015/01/29 Python
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
使用python实现BLAST
2018/02/12 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
python 公共方法汇总解析
2019/09/16 Python
Django设置Postgresql的操作
2020/05/14 Python
python对execl 处理操作代码
2020/06/22 Python
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
Java工程师面试集锦之Spring框架
2013/06/16 面试题
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
简述数据库的设计过程
2015/06/22 面试题
Java语言程序设计测试题判断题部分
2013/01/06 面试题
营业员实习自我鉴定
2013/12/07 职场文书
专科应届毕业生求职信
2014/06/04 职场文书
班级读书活动总结
2014/06/30 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
开学典礼校长致辞
2015/07/29 职场文书