for循环求a和b的最大公约数:
import java.util.Scanner;
public class java_09 {
public static void main(String[] args) {
// 求最大公约数
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个整数");
int a = Math.abs(scan.nextInt());//求个绝对值,保证负数也能求
Scanner scan1 = new Scanner(System.in);
System.out.println("请输入另一个整数");
int b = Math.abs(scan.nextInt());
int min = 0;
// 判断比较a,b谁是最小值
if(a>b){
min = b;
}else{
min = a;
}
// 定义一个最大公约数
int gys = 0;
for (int i=1;i<=min;i++){
if(a % i == 0 && b % i == 0){
gys = i;
}
}
System.out.println("a和b的最大公约是: "+gys);
}
}
使用while循环,并从最小值开始递减判断最大公约数
import java.util.Scanner;
public class java_09 {
public static void main(String[] args) {
// 求最大公约数
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个整数");
int a = Math.abs(scan.nextInt());//求个绝对值,保证负数也能求
Scanner scan1 = new Scanner(System.in);
System.out.println("请输入另一个整数");
int b = Math.abs(scan.nextInt());
int min = 0;
// 判断比较a,b谁是最小值
if(a>b){
min = b;
}else{
min = a;
}
int gys = 0;
while(min>1){
if(a % min == 0 && b % min == 0){
// 一旦满足条件就是最大公约数
gys = min;
// 跳出循环
break;
}
min--;
}
System.out.println("a和b的最大公约是: "+gys);
}
}
最后一个方法更为省时快捷,推荐~