欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)正整數(shù)分解質(zhì)因數(shù)操作示例

 更新時(shí)間:2018年08月01日 12:01:29   作者:混沌鱷魚  
這篇文章主要介紹了Python實(shí)現(xiàn)正整數(shù)分解質(zhì)因數(shù)操作,結(jié)合實(shí)例形式分析了Python循環(huán)與遞歸兩種操作方法實(shí)現(xiàn)分解質(zhì)因數(shù)功能的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)正整數(shù)分解質(zhì)因數(shù)操作。分享給大家供大家參考,具體如下:

遇到一個(gè)Python編程練習(xí)題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入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

自己寫的,完全沒(méi)有參考網(wǎng)上其它人的算法。結(jié)果和大家都差不多。

另外還可以用遞歸方法:

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:這里再為大家推薦幾款計(jì)算工具供大家進(jìn)一步參考借鑒:

在線分解質(zhì)因數(shù)計(jì)算器工具:
http://tools.jb51.net/jisuanqi/factor_calc

在線一元函數(shù)(方程)求解計(jì)算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi

科學(xué)計(jì)算器在線使用_高級(jí)計(jì)算器在線計(jì)算:
http://tools.jb51.net/jisuanqi/jsqkexue

在線計(jì)算器_標(biāo)準(zhǔn)計(jì)算器:
http://tools.jb51.net/jisuanqi/jsq

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論