首页 > 试题广场 >

最大公约数

[编程题]最大公约数
  • 热度指数:39404 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
如果有一个自然数 a 能被自然数 b 整除,则称 a 为 b 的倍数, b 为 a 的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。

输入 a 和 b , 请返回 a 和 b 的最大公约数。

数据范围:
进阶:空间复杂度 ,时间复杂度
示例1

输入

3,6

输出

3
示例2

输入

8,12

输出

4

备注:
a和b的范围是[1-109]
头像 GhostLX
发表于 2021-06-18 18:17:36
精华题解 题目陈述 题目大意:求正整数a,b的最大公约数x仔细审题:最大公约数,即不存在一个比x大,且同时能整除整数a,b的正整数 算法一:暴力做法 算法思路 设mi=min(a,b),即mi为a,b中较小的那个数字 for循环暴力求解,i从1开始循环,到mi截至(因为不存在因数比原数字大的情况),如果能整 展开全文
头像 王清楚
发表于 2021-04-01 15:43:50
我们用辗转相除法(又称欧几里得算法)来计算两个数的最大公约数 (Greatest Common Divisor)所以下文用gcd(a,b)表示a和b的最大公约数。 先举一个例子: 假如需要求 434 和 652 的最大公约数,用欧几里得算法,是这样进行的: 434 / 652 = 0 (余 434) 展开全文
头像 起个响亮的名字___
发表于 2021-10-14 12:40:06
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int * @param b int * @return int */ int gcd(int a, int b ) { if(b% 展开全文
头像 牛客118092561号
发表于 2021-09-16 14:57:21
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int 展开全文
头像 已注销
发表于 2021-10-21 19:16:51
辗转相除法:434和652,即434/652=0...434,652/434=1...218,434/218=216...2,218/2=109...0。最大公约数为2,就是当余数为0时,此时的b为最大公约数。而下一次的b是这一次的a,下一次的b是这一次的余数。 class Solution: 展开全文
头像 LifelongCode
发表于 2021-01-15 19:15:44
链接:https://blog.csdn.net/c1052981766/article/details/79130139java 三种方法实现最大公约数 import java.util.Collections; import java.util.HashSet; import java.util 展开全文
头像 2019113916
发表于 2021-10-11 13:50:26
题意概述 给定两个自然数 要求给出他们的最大公约数 方法一:更相减损术 思路与具体做法 更相减损术介绍 《九章算术》原文: 可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。 白话文译文:(如果需要对分数进行约分,那么)可以折半的话,就折半(也就是用2来约 展开全文
头像 小肥罗
发表于 2021-11-23 20:15:19
解题方法:C++; 解题思路:辗转相除法; 代码如下,有建议请指出,我将积极改进: class Solution { public:     /**      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值 展开全文
头像 牛客344132035号
发表于 2021-10-26 21:28:49
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int 展开全文
头像 阿尼亚瓦库瓦库
发表于 2021-06-27 11:56:25
简单的数学题 import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a in 展开全文
头像 OfferCall!
发表于 2021-04-12 21:02:34
这个思想起源于我国古代的《九章算术》,它原本是为约分而设计的,但它适用于任何需要求最大公约数的场合。原文是这么描述的:“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。” 翻译成白话将就是: 第一步:对于任意给定的两个正整数a、b,要求出他们的最大公约数,首先判断他 展开全文

问题信息

上传者:牛客301499号
难度:
84条回答 3983浏览

热门推荐

通过挑战的用户

查看代码
最大公约数