首页 > 其他分享 >求两个数的最大公约数 和 求两个数的最小公倍数

求两个数的最大公约数 和 求两个数的最小公倍数

时间:2024-03-27 21:01:31浏览次数:14  
标签:两个 num1 num2 公倍数 int 最大公约数 input 输入

求两个数的最大公约数

题目内容:

输入两个正整数num1和num2(不超过1000),求它们的最大公约数并输出。

我们定义求最大公约数的函数为hcf,给出程序主体如下:num1=int(input("")) num2=int(input("")) print(hcf(num1,num2))请补充完成hcf函数的定义。 


输入格式:

共两行,每一行输入一个不超过1000的正整数。

输出格式:

共一行,输出一个正整数。

输入样例:

6

8

输出样例:

2


解法

#方法一:
def hcf(a,b):
    if (a == 0) or (b == 0):
        t = a if a > b else b
        print("%d,%d两个数的最大公约数是:%d" %(a,b,t))
        return
    elif a > b:
        c = b
    else:
        c = a
    while(((a%c)!=0) or (b%c)!=0):
        c = c - 1
    print("%d,%d两个数的最大公约数是:%d" %(a,b,c))

if __name__ == "__main__":
    #输入两个数,以空格隔开
    a,b = map(int,input().split())
    #print("%d,%d两个数的最大公约数是:%d" %(a,b,gcd(a,b)))
    hcf(a,b)

def hcf(x, y):
   """该函数返回两个数的最大公约数"""
   # 获取最小值
   if x > y:
       smaller = y
   else:
       smaller = x
 
   for i in range(1,smaller + 1):
       if((x % i == 0) and (y % i == 0)):
           hcf1 = i
 
   return hcf1
 
# 用户输入两个数字
num1=int(input("第一个"))
num2=int(input("第二个"))
print( num1,"和", num2,"的最大公约数为", hcf(num1, num2))

求两个数的最小公倍数

题目内容:

输入两个正整数num1和num2(不超过500),求它们的最小公倍数并输出。

我们定义求最小公倍数的函数为lcm,给出程序主体如下:num1=int(input("")) num2=int(input("")) print(lcm(num1,num2))请补充完成lcm函数的定义。


输入格式:

共两行,每一行输入一个不超过500的正整数。

输出格式:

共一行,输出一个正整数。

输入样例:

4

6

输出样例:

12


解法:

def lcm(n1,n2):
    alist=[]
    for i in range(1,min(n1,n2)+1):
        if n1%i==0 and n2%i==0:
            alist.append(i)
            gcd=int(max(alist))
    return gcd
num1=int(input('请输入第一个正整数:'))
num2=int(input('请输入第二个正整数:'))
print('两个数的最小公倍数是:',int((num1*num2)

标签:两个,num1,num2,公倍数,int,最大公约数,input,输入
From: https://blog.csdn.net/qq_74916568/article/details/137088086

相关文章

  • 3/30 天崩开局!两个小时!美团一面!
    下面我将分享一位同学在「美团后端一面的面试经历」,对于这次面试,「他的评价是,很有难度,你试试呢」?【提醒】通过这次面试经验,你将可以复习到以下知识点:算法题:LeetCode124,LeetCode23集合:String、StringBuilder、StringBuffer的区别,哈希冲突的解决办法,Has......
  • 如何比较两个集合的差异?
    场景:在窗口关闭的时候(用户点击叉叉的时候),需要比较用户在当前页面是否有修改,如果有需要提示是否要保存,如果没有才能关闭页面。两种解决方案:已知集合:LstConfig(当前的集合)  _localLstConfig(在打开页面随即缓存的初始数据集合)第一种:集合直接比较publicboolJudgeIsChang......
  • LeetCodeHot100 链表 160. 相交链表 206. 反转链表 234. 回文链表 141. 环形链表
    160.相交链表https://leetcode.cn/problems/intersection-of-two-linked-lists/description/?envType=study-plan-v2&envId=top-100-likedpublicListNodegetIntersectionNode(ListNodeheadA,ListNodeheadB){intlenA=0;intlenB=0;L......
  • 88.合并两个有序数组
    非递减顺序,即非严格递增序列自己没写出来classSolution{publicvoidmerge(int[]nums1,intm,int[]nums2,intn){inttail1=m-1;inttail2=n-1;inttail=nums1.length-1;while(tail1>=0&&tail2>=0){//区别......
  • 力扣刷题之21.合并两个有序链表
    仅做学习笔记之用。题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0]......
  • 【ArkTS】鸿蒙开发 比较两个数的大小 用户界面输入两个数并输出较大数
    在DevEcoStudio中开发一个比较两个数X,Y大小的界面,主要练习对HarmonyOS文本框输入TextInput属性的应用。TextInput的具体使用步骤可以先在官网略作了解 1.设置三个值来分别接收输入的两个值和作比较后较大的值@StateXvalue:string=''@StateYvalue:string=''......
  • 十 1360. 有序分数 (最大公约数|递归)
    1360.有序分数(最大公约数|递归)方法一思路:统计所有组合,并求其最大公约数是否为1,只有最大公约数为1的组合才成立,然后按组成的分数大小顺序排序。importjava.util.*;publicclassMain{privatestaticintgcd(inta,intb){returnb==0?a:gcd(b......
  • 06天【代码随想录算法训练营34期】 第三章 哈希表part01(● 242.有效的字母异位词 ●
    242.有效的字母异位词思路:26位的array,每个分别对应a,b,c...,z,如果遇到一个字母就++,如果两个array一样则为anagramhint:toinitiateanarraywithnelementscarryingvalue0:arr=[]arr=[0foriinrange(n)]print(arr)classSolution:defisAnagram(self,......
  • 代码随想录算法训练营第五十五天 | 583. 两个字符串的删除操作, 72. 编辑距离
    72.编辑距离 已解答中等 相关标签相关企业 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符 示例1:输入:word1="horse"......
  • 代码随想录算法训练营Day55 ||leetCode 583. 两个字符串的删除操作 || 72. 编辑距离
    583. 两个字符串的删除操作 这道题的状态方程比上一题简单一些初始化如下classSolution{public:intminDistance(stringword1,stringword2){vector<vector<int>>dp(word1.size()+1,vector<int>(word2.size()+1));for(inti=0;i......