java求最大公约数

public class ArithmeticTest1 {
    public static void main(String[] args) {
        System.out.println(gab1(88,72));
        System.out.println(gab2(88,72));
        /**
         * gab1(gab1(452,546),90)求取三个数的最大公约数
         */
        System.out.println(gab1(gab1(452,546),90));
    }
    /**
     * 相除法获取两个数的最大公约数
     * @param a
     * @param b
     * @return
     */
    public static int gab1(int a,int b){
        while(b!=0){
            int temp=a%b;
            a=b;
            b=temp;
        }
        return a;
    }
    /**
     * 相减法获取两个数的最大公约数
     * @param a
     * @param b
     * @return
     */
    public static int gab2(int a,int b){
        while(a!=b){
            if(a>b){
                a=a-b;
            }else {
                b=b-a;
            }
        }
        return a;
    }
}

时间: 2024-10-21 20:22:23

java求最大公约数的相关文章

java求最大公约数(分解质因数)

下面是四种用java语言编程实现的求最大公约数的方法: package gcd; import java.util.ArrayList; import java.util.List; public class gcd { public static void main(String[] args) { long startTime; long endTime; long durationTime; int[] testArray1 = new int[]{784, 988, 460, 732,

java求最大公约数,和最小公倍数

import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = sc.nextInt(); if(m<n) { int temp = m; m = n; n = temp; } int t = gy(m,n); System.out.println("

初学Java 求最大公约数

1 import java.util.Scanner; 2 public class GreatesCommonDivisor { 3 public static void main(String[] args) { 4 Scanner input = new Scanner(System.in); 5 6 System.out.print("Enter first integer: "); 7 int n1 = input.nextInt(); 8 System.out.print(

java 求最大公约数

public class Main { public static void main(String[] args) { System.out.println(gcd(4,8)); }//辗转相除法 public static int gcd(int x, int y){ if(y == 0) return x; else return gcd(y,x%y); }} 原文地址:https://www.cnblogs.com/sgbe/p/11413331.html

欧几里得求最大公约数--JAVA递归实现

欧几里得算法求最大公约数算法思想: 求p和q的最大公约数,如果q=0,最大公约数就是p:否则,p除以q余数为r,p和q的最大公约数即q和r的最大公约数. java实现代码: 1 public class Demo0 { 2 public static void main(String[] args) { 3 4 System.out.println(gcd(24,120)); 5 } 6 7 8 public static int gcd(int p,int q){ 9 10 if(q==0)

hdu----(5050)Divided Land(二进制求最大公约数)

Divided Land Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 123    Accepted Submission(s): 64 Problem Description It’s time to fight the local despots and redistribute the land. There is a rect

(hdu 2.1.4)又见GCD(求最大公约数GCD的变化题)

题目: 又见GCD Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2685 Accepted Submission(s): 1327   Problem Description 有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. Input 第一行输入一个n,

递归求最大公约数

  import java.io.IOException; import java.util.Scanner; public class CommonDivisor { public static void main(String[] args)throws IOException{ try{ System.out.println("请输入两个整数!"); Scanner input = new Scanner(System.in); int x = input.nextInt();

【算法】欧几里德算法--求最大公约数

预备知识 因子(除数) 如果有整数 n,a,b .a和b都不为0 ,且 有 n = a*b ,则说a(或者b,以下省略说明)为n的一个因子,或者说a能整除n. 特别的:任何非0整数都是0的因子,所以一般我们不会去求0的因子. 如:3 的因子有  1, -1 ,  3 ,  -3 .然而我们一般只考虑正数因子,因为负数因子和正数因此没有本质上的区别,只是符号不同而已. 素数:素数(也加叫质数)的定义是,如果整数p的因子 只有 ±1 和   ±p,则它就是素数 .特别的:0 和1既不是素数,也不是合