博客
关于我
Problem C: 求最大公约数
阅读量:250 次
发布时间:2019-03-01

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

Problem C: 求最大公约数

Description

两个数能同时被一个数所整除,这个数就是公约数。例如,12和20的公约数有1,2,4。其中4是12和20的最大公约数。

Input

输入两个正整数,用逗号分隔。

Output

输出这两个数的最大公约数。

Method

可以用辗转相除法(欧几里得算法)或穷举法求最大公约数。辗转相除法的时间复杂度较低,适合较大的数值。

Using Euclidean Algorithm

步骤如下:

1. 设较大的数为a,较小的数为b。2. 计算a除以b的余数r。3. 设a = b,b = r,重复步骤2,直到b为0。4. 最后,a就是最大公约数。

示例:

计算24和60的最大公约数:

- 60 ÷ 24 = 2余12 → a=24, b=12- 24 ÷ 12 = 2余0 → 最大公约数为12。

Using Brute Force Method

步骤如下:

1. 对第一个数n,找出所有约数。2. 对第二个数m,找出所有约数。3. 比较两个数组,找出共同的约数,最大的那个即为最大公约数。

示例:

计算24和60的最大公约数:

- 24的约数:1, 2, 3, 4, 6, 8, 12, 24。- 60的约数:1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60。- 公约数:1, 2, 3, 4, 6, 12 → 最大为12。

Code Implementations

使用C语言实现欧几里得算法:

#include 
int gcd(int a, int b) { while (b != 0) { int temp = a % b; a = b; b = temp; } return a;}int main() { int n, m; scanf("%d, %d", &n, &m); int a, b; if (n > m) { a = n; b = m; } else { a = m; b = n; } printf("%d", gcd(a, b));}

或者使用Python:

def gcd(a, b):    while b != 0:        a, b = b, a % b    return an, m = map(int, input().split())print(gcd(n, m))

总结:

通过欧几里得算法,我们可以高效地计算两个数的最大公约数。这种方法的时间复杂度是O(log min(a, b)),非常适合处理较大的数。而穷举法虽然简单,但在数较大的情况下效率较低。因此,辗转相除法是更优的选择。

转载地址:http://rsux.baihongyu.com/

你可能感兴趣的文章
nvidia-htop 使用教程
查看>>
nvidia-smi 参数详解
查看>>
Nvidia驱动失效,采用官方的方法重装更快
查看>>
nvmw安装node-v4.0.0之后版本的临时解决办法
查看>>
nvm切换node版本
查看>>
nvm安装以后,node -v npm 等命令提示不是内部或外部命令 node多版本控制管理 node多版本随意切换
查看>>
ny540 奇怪的排序 简单题
查看>>
NYOJ 1066 CO-PRIME(数论)
查看>>
nyoj------203三国志
查看>>
nyoj58 最少步数
查看>>
OAuth2 + Gateway统一认证一步步实现(公司项目能直接使用),密码模式&授权码模式
查看>>
OAuth2 Provider 项目常见问题解决方案
查看>>
OAuth2 vs JWT,到底怎么选?
查看>>
Vue.js 学习总结(14)—— Vue3 为什么推荐使用 ref 而不是 reactive
查看>>
oauth2-shiro 添加 redis 实现版本
查看>>
OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
查看>>
OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
查看>>
OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
查看>>
OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
查看>>
OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
查看>>