最大公约数:Greatest Common Divisor(GCD)
图例:
方法一:循环相减求最大公约数
流程图:
代码实现:
import java.util.Scanner;
/**
* 键盘录入两个不一样的整数求取其最大公约数 1.循环相减求最大公约数
* @author buyi杨
*/
public class Test15 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数");
int num1 = sc.nextInt();
System.out.println("请输入第二个整数");
int num2 = sc.nextInt();
while (num1 != num2) {
if (num1 > num2) {
num1 = num1 - num2;
}
if (num1 < num2) {
num2 = num2 - num1;
}
}
System.out.println("最大公约数是:" + num1);
}
}
方法二:循环相模(欧几里得算法)求最大公约数
流程图:
代码实现:
import java.util.Scanner;
/**
* 键盘录入两个不一样的整数求取其最大公约数 2.循环相模求最大公约数
*
* @author buyi杨
*/
public class Test16 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数");
int num1 = sc.nextInt();
System.out.println("请输入第二个整数");
int num2 = sc.nextInt();
if (num1 >= num2) {
while (num1 % num2 !=0) {
int num3 = num1 % num2;
num1 = num2;
num2 = num3;
}
System.out.println("最大公因数:" + num2);
} else {
while ( num2 % num1 !=0) {
int num3 = num2 % num1;
num2 = num1;
num1 = num3;
}
System.out.println("最大公因数:" + num1);
}
}
}
方法三:循环检测(穷举法)求最大公约数
流程图:
代码实现:
import java.util.Scanner;
/**
* 键盘录入两个不一样的整数求取其最大公约数 2.循环检测求最大公约数
* @author buyi杨
*/
public class Test17 {
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
System.out.println("请输入第一个整数");
int num1 = sc.nextInt();
System.out.println("请输入第二个整数");
int num2 = sc.nextInt();
int temp = 0;
for (temp = num1 ; ;temp--){
if (num1 % temp == 0 && num2 %temp == 0) {
break;
}
}
System.out.println("最大公约数:" + temp);
}
}