(java)求最大公约数
提示:此篇小白编写,如有建议请多多指教。
文章目录
前言
一、公约数是什么?
二、求最大公约数的方法
1.枚举法
2.展转相除法(欧几里德算法)
总结
效果呈现编辑
前言
1.枚举法(暴力求解法)2.展转相除法(欧几里德算法) gcd(a,b) = gcd(b,a mod b) (不妨设a>b 且r=a mod b ,r不为0)例如,求(319,377): ∵ 319÷377=0(余319)∴(319,377)=(377,319); ∵ 377÷319=1(余58) ∴(377,319)=(319,58);∵319÷58=5(余29) ∴ (319,58)=(58,29); ∵ 58÷29=2(余0) ∴ (58,29)= 29;∴(319,377)=29。 能够写成右边的格式。用展转相除法求几个数的最大公约数,能够先求出其中任意两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数,依次求下去,直到最后一个数为止。最后所得的那个最大公约数,就是全部这些数的最大公约数。
一、公约数是什么?
定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。最大公约数(Greatest Common Divisor)缩写为GCD。
二、求最大公约数的方法
1.枚举法
代码如下:
import java.util.Scanner;public class GongYueShu {public static void main(String[]args) {Scanner in =new Scanner(System.in);System.out.println("请输入一个自然数");int a =in.nextInt();System.out.println("请再输入一个自然数");int b =in.nextInt();int daan=1;for ( int i = 2; i<=a && i<=b ;i++ ){if ( a % i == 0 && b % i == 0 ){daan = i;}}System.out.println(a+"和"+b+"的最大公约数是"+daan);}
}
2.展转相除法(欧几里德算法)
代码如下:
import java.util.Scanner;public class GongYueShu2 {public static void main(String[]args) {Scanner in =new Scanner(System.in);System.out.println("请输入一个自然数");int a =in.nextInt();System.out.println("请再输入一个自然数");int b =in.nextInt();int oa = a;int ob = b;while (b!=0){int r = a % b;a = b;b = r;}System.out.println(oa+"和"+ob+"的最大公约数是"+a);}
}
总结
效果呈现
开头import java.util.Scanner;引入Scanner工具,可进行算法输入
Scanner类的创建对象: Scanner S=new Scanner(System.in); 从键盘接收数据,next方式接收字符串。
(java)求最大公约数相关推荐
- Java求最大公约数与最小公倍数
Java求最大公约数与最小公倍数 Java求最大公约数与最小公倍数 import java.util.Scanner;public class Main {public static void mai ...
- java求最大公约数(分解质因数)
下面是四种用java语言编程实现的求最大公约数的方法: package gcd;import java.util.ArrayList; import java.util.List;public cla ...
- java - 求最大公约数和最小公倍数
根据提示输入两个正整数 m 和 n,求其最大公约数和最小公倍数 并进行控制台输出. 原理分析 在循环中,只要除数不等于 0,用较大数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮 ...
- java求约数_[转载]Java求最大公约数与最小公倍数
(看到一份不错的总结,拿来收着) 如果数a能被数b整除,a就叫做b的倍数,b就叫做作a的约数.约数和倍数都表示一个数与另一个数的关系,不能单独存在.如只能说16是某数的倍数,2是某数的约数,而不能孤立 ...
- java求最大公约数_java求最大公约数(分解质因数)
下面是四种用java语言编程实现的求最大公约数的方法: package gcd; import java.util.ArrayList; import java.util.List; public c ...
- C#/java 求最大公约数和最小公倍数
以下是主框架: //以下为求最大公约数s for(int i=1;i<=(a<b?a:b);i++) { if(a%i==0&&b%i==0) max=i; } //以下为 ...
- Java 求最大公约数
文章目录 前言 一.四种方法 1.暴力枚举 2.辗转相除法 3.更相减损法 4.简化的辗转相除法 前言 求最大公约数,是比较常见的算法,下面总结几种常用的方法 一.四种方法 1.暴力枚举 无脑流,最为 ...
- java求最大公约数和最小公倍数
求两个数的最大公约数和最小公倍数是我们学习各种语言常见的一种问题,给定如何求出两个数,求出最小公倍数和最大公约数,其实只要我们理解意思,发现规律,这道题还是比较容易的,下面来看一下代码实现: // 输 ...
- java求最大公约数_10道java经典算法题,小白必备,每一题都能提升你的java能力...
JAVA经典算法 跪求关注,祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早上贵子,从不掉发! 更多java资料可以私信我领取! [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每 ...
- java求最大公约数
最大公因数:也称最大公约数.最大公因子,指两个或多个整数共有约数中最大的一个. 任意输入两个整数,如何求它们的最大公约数? 方法一:两个整数中大的整数对小的求余,若不为0,则让小的整数减1,继续循环, ...
最新文章
- 数据蒋堂 | 性能优化是个手艺活
- JS对象与Dom对象与jQuery对象之间的区别
- 关于 epoch、 iteration和batchsize的区别
- 程序员考核的五大死因(上)
- linux内核压缩制作bzImage
- python程序如何执行死刑_「Python基础知识」Python生成器函数
- 西点军校的经典法则[转]
- linux面试命令问题,面试常见的Linux命令及问题整理
- html---标题居中,背景图片
- u盘文件或目录损坏且无法读取
- tp801单板微型计算机英文全称,TP801型微型计算机在低压铸造与差压铸造液面加压控制系统中的应用.pdf...
- SpringBoot数据库密码动态配置
- 解决bug 起止时间相同 搜索不到相关数据
- MT6765-Preloader_流程分析--基于android 10
- C#WinForm二维码编码解码器
- t420i升级固态硬盘提升_电脑升级固态硬盘,速度还不够快?这些设置你一定没做好...
- BGD 通信15-1 150206102 王嘉良 网络运维调查报告
- 【转】俞敏洪演讲:度过有意义的生命
- android格式化手机号的功能
- 卷积神经网络——24位彩色图像的卷积的详细介绍