国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python實(shí)現(xiàn)的求解最大公約數(shù)算法示例

2020-01-04 15:15:05
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Python實(shí)現(xiàn)的求解最大公約數(shù)算法。分享給大家供大家參考,具體如下:

使用Python求解兩個(gè)數(shù)的最大公約數(shù)的時(shí)候用到了前面介紹的分解質(zhì)因式。其實(shí),我寫分解質(zhì)因式程序的時(shí)候就是因?yàn)榘l(fā)現(xiàn)在實(shí)現(xiàn)最大公約數(shù)求解的過程中用到了這個(gè)功能。

比較令我開心的是之前學(xué)的一點(diǎn)Python集合處理功能居然在這個(gè)時(shí)候也派上了用場(chǎng),小程序的完成讓人感覺比較舒心。

代碼實(shí)現(xiàn)如下:

#!/usr/bin/pythonfrom collections import Counterdef PrimeNum(num):  r_value =[]  for i inrange(2,num+1):   for jin range(2,i):     if i % j == 0:      break   else:     r_value.append(i)  return r_valuedef PrimeFactorSolve(num,prime_list):  for n inprime_list:   if num % n == 0:     return [n,num / n]def PrimeDivisor(num):  num_temp =num  prime_range= PrimeNum(num)  ret_value =[]  while numnot in prime_range:   factor_list= PrimeFactorSolve(num,prime_range)   ret_value.append(factor_list[0])   num =factor_list[1]  else:   ret_value.append(num)  return Counter(ret_value)def MaxDivisor(num1,num2):  dict1 =PrimeDivisor(num1)  dict2 =PrimeDivisor(num2)  max_divisor= 1  for key1 indict1:   if key1 in dict2:     if dict1[key1] < dict2[key1]:      max_divisor*= (key1 ** dict1[key1])     else:      max_divisor*= (key1 ** dict2[key1])  return max_divisorprint(MaxDivisor(12,18))print(MaxDivisor(7,2))print(MaxDivisor(7,13))print(MaxDivisor(24,56))print(MaxDivisor(63,81))

程序的執(zhí)行結(jié)果如下:

E:/WorkSpace/01_編程語言/03_Python/math>python max_divisor.py
6
1
1
8
9

通過驗(yàn)證,計(jì)算結(jié)果準(zhǔn)確。

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


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到python教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平邑县| 瑞安市| 璧山县| 四子王旗| 淮阳县| 合阳县| 北京市| 临武县| 锡林浩特市| 慈利县| 明星| 喀喇沁旗| 菏泽市| 灵璧县| 农安县| 玉田县| 武鸣县| 海阳市| 巴楚县| 西昌市| 怀仁县| 尚志市| 镇巴县| 乌拉特后旗| 宁强县| 台江县| 红桥区| 博罗县| 科技| 揭阳市| 昌吉市| 岐山县| 乌什县| 察雅县| 绵阳市| 灵宝市| 天气| 中阳县| 宁津县| 仙游县| 叶城县|