欧几里得算法求m,n(非负整数)的最大公约数,记为gcd(m,n);java版
基础知识:最大公约数:自行百度;
欧几里得-最大公约数算法:
gcd(m,n) = gcd(n,m mod n) (m mod n 表示:m除以n后的余数) 重复此步骤,知道 m mod n等于0;
得到gcd(m,0) 而gcd(m,0) = m (这步为什么?呃我好像也有点不太明白!如果有知道的欢迎告知)
举例说明:gcd(60,24) = gcd(24,12) = gcd(12,0) = 12;因此结果为12.不信的话可以请自己验证一下;
代码如下:
//
//欧几里得算法求最大公约数
//created by AaronLee_1310 on 2019 04 28
//
public class main {public static void main(String[] args){//随意初始化数值int m = 248;int n = 16802768;int result = gcd(m,n);System.out.println(result);}//欧几里得求最大公约数算法.public static int gcd(int m,int n){//判断m是否大于nif(m < n){int temp = m;m = n;n = temp;}while(n != 0){int r = m % n;m = n;n = r;}return m;}}
其中做了一步优化判断,判断m是否大于n,否的话互换。主要的函数就是while部分。
欧几里得算法求m,n(非负整数)的最大公约数,记为gcd(m,n);java版相关推荐
- 欧几里得算法求两个正整数的最大公约数
此题可以使用暴力破解法解决,但是效率不高. 欧几里德算法又称辗转相除法,其计算原理依赖于下面的定理: gcd(a,b) = gcd(b,a mod b) (a>b 且a mod b 不为0) ...
- 欧几里得算法求最大公约数python,算法:欧几里得求最大公约数(python版)
#欧几里得求最大公约数 #!/usr/bin/env python #coding -*- utf:8 -*- #iteration def gcd(a,b): if b==0: return a e ...
- 用欧几里得算法求最大公约数_欧几里得算法:GCD(最大公约数),用C ++和Java示例解释...
用欧几里得算法求最大公约数 For this topic you must know about Greatest Common Divisor (GCD) and the MOD operation ...
- 辗转相除法(欧几里得算法)求 最大公约数与最小公倍数+推论与证明。
首先我们规定:0不参与公约数和公倍数的讨论 先来讨论最大公约数: 最大公约数求法:两个数的所有公共质数相乘. 考虑三个问题. 为什么是公共的:公共代表这个数可以被两个数都整除 为什么是质数:合数一定能 ...
- 欧几里得算法求最大公约数、最大公倍数
欧几里得算法求最大公约数.最大公倍数 最大公约数(Greatest Common Divisor, GCD),是指2个或N个整数共有约数中最大的一个.a,b的最大公约数记为(a, b).相对应的是最小 ...
- C语言:欧几里得算法求最大公约数
文章目录 欧几里得算法 C语言:欧几里得算法求最大公约数 C语言:穷举法 欧几里得算法 举个例子说明欧几里得算法. 如图所示,用正方形地板砖,把这一块粉红色空地(长为xxx,宽为yyy,x>yx ...
- 离散数学/初等数论:用“质因子分解法”和“欧几里得算法”求最大公约数gcd;“质因子分解法”和“最简算法”求最小公倍数lcm;以及对“意义”的一些看法。
需要在开头提前说明,本篇文章仅仅用于在学习初等数论或者离散数学时候对算术基本定理的理解,实际应用的时候把结论告诉大家,想求最大公约数就用欧几里得算法是最简单的,在本篇不再赘述,有机会我会在其他文章中说 ...
- 欧几里得算法求最大公约数之惊掉下巴的代码简化(纯C语言)
欧几里得算法求最大公约数也叫辗转相除法. 证明 有两个数a,b,且a = kb + r(a,b,k,r皆为正整数,且r<b) 假设d为a,b的一个公约数 而r = a - kb,两边同时除以d, ...
- 辗转相除法(求两个非负整数的最大公约数)(拓展:求n个非负整数的最大公约数)
求两个非负整数的最大公约数 int main() {int m, n;scanf("%d %d", &m, &n);int k = 0;while (k = m%n ...
最新文章
- 直博清华的小姐姐!本科就发表了SCI,享受朝九晚五的学习生活,做自己的小太阳!...
- c - 字符串的拼接.
- javascript 给关键字加链接
- SQLServer数据的基本操作:简单的增、删、改、查
- 4、第九 - WEB开发基础 - HTML中JavaScript基础应用
- [转] 实战 SSH 端口转发
- Spring全自动AOP和项目加入jar包
- ajax长链接--拉实现
- mysql 字符串类型 char varchar
- kafka 异常:return ‘<SimpleProducer batch=%s>‘ % self.async ^ SyntaxError: invalid syntax
- c语言过磅系统,为什么要用无人值守_自动过磅系统?
- 【面试】iOS 开发面试题(二)
- 从零开始--系统深入学习android(实践-让我们开始写代码-Android框架学习-2. 输入控件)...
- 0.3-87 GHz频段手持频谱分析仪 —— SAF Spectrum Compact
- 外卖cps美团饿了么小程序 每天领取外卖优惠券 下单直接抵扣现金(外卖cps返利分销小程序源码)
- 服务器系统0 c000000f,win10系统提示错误代码0xc000000f的三种解决方法
- 常用分辨率、帧率、码率
- array_column()函数用法
- storage ( initial 64K minextents 1 maxextents unlimited );
- duang,duang!!duang.java.mustReadTips
热门文章
- Hadoop集群安装及其配置(三台虚拟机)
- python绘制气象海洋不规则空间站点数据的填色图
- 白话空间统计二十九:空间插值(二)
- smtp 协议 MIME协议
- 激动人心,2022开放原子全球开源峰会报名火热开启
- 高中计算机一级基础知识,2017全国计算机一级MS Office考证常考知识点-高中课件精选.doc...
- 云原生之使用Docker部署webssh工具sshwifty
- 【matlab】xlsread,xlswrite 无法激活Excel工作表
- 微信小程序地图获取经纬度并获取经纬度的地址信息
- java 连接远程桌面_Java实现远程桌面(参赛作品)