首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
最大公约数
[编程题]最大公约数
热度指数: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-10
9
]
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(2)
邀请回答
收藏(254)
分享
提交结果有问题?
84个回答
94篇题解
开通博客
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条回答
254收藏
3983浏览
热门推荐
通过挑战的用户
查看代码
BUGBOY101
2022-10-10 10:07:05
大白饭的白饭
2022-09-16 11:37:19
牛客57434...
2022-09-16 10:45:22
在攒经验的斑马很纠结
2022-09-16 10:37:24
Flawles...
2022-09-16 10:23:47
相关试题
线段树编号问题
基础数学
评论
(2)
车站建造问题
基础数学
评论
(40)
牛牛的超市
动态规划
基础数学
评论
(5)
编程题 ,按照要求创建Java 应...
Java
评论
(1)
市场与销售的区别在哪里?
市场营销
评论
(1)
最大公约数
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int整型 * @param b int整型 * @return int整型 */ public int gcd (int a, int b) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int整型 * @param b int整型 * @return int整型 */ int gcd(int a, int b) { // write code here } };
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 求出a、b的最大公约数。 # @param a int整型 # @param b int整型 # @return int整型 # class Solution: def gcd(self , a , b ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int整型 * @param b int整型 * @return int整型 */ public int gcd (int a, int b) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int整型 * @param b int整型 * @return int整型 */ function gcd( a , b ) { // write code here } module.exports = { gcd : gcd };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 求出a、b的最大公约数。 # @param a int整型 # @param b int整型 # @return int整型 # class Solution: def gcd(self , a: int, b: int) -> int: # write code here
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int整型 * @param b int整型 * @return int整型 */ func gcd( a int , b int ) int { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int整型 * @param b int整型 * @return int整型 */ int gcd(int a, int b ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 求出a、b的最大公约数。 # @param a int整型 # @param b int整型 # @return int整型 # class Solution def gcd(a, b) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int整型 * @param b int整型 * @return int整型 */ def gcd(a: Int,b: Int): Int = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int整型 * @param b int整型 * @return int整型 */ fun gcd(a: Int,b: Int): Int { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int整型 * @param b int整型 * @return int整型 */ public int gcd (int a, int b) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int整型 * @param b int整型 * @return int整型 */ export function gcd(a: number, b: number): number { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int整型 * @param b int整型 * @return int整型 */ func gcd ( _ a: Int, _ b: Int) -> Int { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 求出a、b的最大公约数。 * @param a int整型 * @param b int整型 * @return int整型 */ pub fn gcd(&self, a: i32, b: i32) -> i32 { // write code here } }
3,6
3
8,12
4