Java基础 - 欧几里得法求最大公约数

来源:互联网 发布:什么是java框架 编辑:程序博客网 时间:2024/06/05 02:46
  1. 原理
    两个整数的最大公约数等于其中较小的那个数和两数的相除余数的最大公约数。
    eg:求gcd(319,377)
    因为319 % 377 = 0 …余377
    所以(319,377) = (377,319)
    因为377 % 319 = 1 … 余58
    所以(377,319) = (319,58)
    因为319 % 58 = 5… 余29
    所以(319,58) = (58,29)
    因为58%29 = 2…余0
    所以(319,377) = 29

import java.io.IOException;
import java.util.Scanner;

public class App4_9{
public static void main(String[] args) throws IOException{
//APP4_9用辗转相除法求两个整數的最大公约数
int a, b, k = 0;
Scanner reader = new Scanner(System.in);
System.out.print(“请输入第一个整数: “);
a = reader.nextInt();
System.out.print(“请输入第二个整數: “);
b = reader.nextInt();
System.out.print(“gcd(” + a +”,”+ b + “) = “);
System.out.println(“k” + “=” + (a%b));
do{
k = a % b;
a = b;
b = k;
}while(k != 0);
System.out.println(a);
}

}

0 0
原创粉丝点击