最大公约数的基本解法和辗转相除法
2017-02-20 16:16
190 查看
一、从2开始一直到两个数中最大的一个进行取余运算
代码:
package com.im;
import java.util.Scanner;
public class Demo59 {
}
![](http://img.blog.csdn.net/20170220161456678?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjIxODYxODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
二、使用辗转相除法
解析:两个数125和2525求最大公约数
5767/4453=1余1314
4453/1314 =3余511
1314/511=2余292
511/292=1余219
292/73=3余0 被整除,所以73为最大公约数
代码:
package com.im;
import java.util.Scanner;
public class Demo591 {
}
代码:
package com.im;
import java.util.Scanner;
public class Demo59 {
public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("输入第一位数:"); int n1 = input.nextInt(); System.out.print("输入第二位数:"); int n2 = input.nextInt(); int g = 1; //公约数 int k = 2; //初始的公约数 while(k<=n1 && k<=n2){ //判断公约数于这两位数 if(n1%k==0 && n2%k==0){ //判断公约数能被这两位数整除 g = k; } k++; } System.out.println(n1+"和"+n2+"的最大公约数为:"+g); }
}
二、使用辗转相除法
解析:两个数125和2525求最大公约数
5767/4453=1余1314
4453/1314 =3余511
1314/511=2余292
511/292=1余219
292/73=3余0 被整除,所以73为最大公约数
代码:
package com.im;
import java.util.Scanner;
public class Demo591 {
public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.print("输入第一位数:"); int m = input.nextInt(); System.out.print("输入第二位数:"); int n = input.nextInt(); if(m>n){ while(m%n!=0){ int g = m%n; //公约数 m = n; n = g; } System.out.println("最大公约数为:"+n); }else{ while(n%m!=0){ int g = n%m; //公约数 n = m; m = g; } System.out.println("最大公约数为:"+m); } }
}
相关文章推荐
- 最大公约数算法 辗转相除法解析
- I - 辗转相除法求最大公约数
- 最小公倍数和最大公约数的求法——最快的:辗转相除法
- 辗转相除法求最大公约数-hdu1019
- 辗转相除法求最大公约数
- 通用版1.I - 辗转相除法求最大公约数
- 辗转相除法求两个数的最大公约数
- Python基于辗转相除法求解最大公约数的方法示例
- 给定两个数m,n,使用欧几里得的辗转相除法求出它们的最大公约数
- 求最大公约数——辗转相除法
- 【牛客网】【网易2016研发工程师编程题】【辗转相除法求最大公约数】
- 利用辗转相除法求两个数的最大公约数
- 最大公约数与最小公倍数之三种解法
- 数论基础之辗转相除法求最大公约数
- 使用辗转相除法求得最大公约数
- 最大公约数和最小公倍数解法(java)
- 辗转相除法--最大公约数
- 最大公约数(枚举和辗转相除法)
- 最大公约数之迭代解法.
- 《编程之美》2.7 最大公约数问题解法3改进