使用Python求解最小公倍数
发布日期:2021-06-30 03:31:59 浏览次数:2 分类:技术文章

本文共 1357 字,大约阅读时间需要 4 分钟。

      简单分析了一下,最大公约数的求解方法跟最小公倍数的求解方法类似,只需要改一个简单的条件,然后做一点简单的其他计算。问题的解决也是基于分解质因式的程序。

      程序实现以及测试case代码如下:

#!/usr/bin/python

 

from collections import Counter

 

def PrimeNum(num):

      r_value =[]

      for i inrange(2,num+1):

            for jin range(2,i):

                  ifi % j == 0:

                        break

            else:

                  r_value.append(i)

      returnr_value

 

def PrimeFactorSolve(num,prime_list):

      for n inprime_list:

            ifnum % 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)

      returnCounter(ret_value)

 

def LeastCommonMultiple(num1,num2):

      dict1 =PrimeDivisor(num1)

      dict2 =PrimeDivisor(num2)

      least_common_multiple= 1

      for key indict1:

            ifkey in dict2:

                  ifdict1[key] > dict2[key]:

                        least_common_multiple*= (key ** dict1[key])

                  else:

                        least_common_multiple*= (key ** dict2[key])

      for key indict1:

            ifkey not in dict2:

                  least_common_multiple*= (key ** dict1[key])

      for key indict2:

            ifkey not in dict1:

                  least_common_multiple*= (key ** dict2[key])

                 

      returnleast_common_multiple

 

print(LeastCommonMultiple(12,18))

print(LeastCommonMultiple(7,2))

print(LeastCommonMultiple(7,13))

print(LeastCommonMultiple(24,56))

print(LeastCommonMultiple(63,81))

      程序执行结果:

E:\WorkSpace\01_编程语言\03_Python\math>pythonleast_common_multiple.py

36

14

91

168

567

      通过验证,计算结果准确。

转载地址:https://greyzhang.blog.csdn.net/article/details/71429966 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Windows上实现dos命令重命名
下一篇:使用Python求解最大公约数

发表评论

最新留言

很好
[***.229.124.182]2024年04月28日 18时36分52秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章