import java.util.Scanner;
/**
* @author LLJ
* @time 2020-5-30 下午10:01:48
* @Description java语言设计求最大公约数出现的问题和解决方案
*/
public class ZuiDaGongYueShu {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数A:");
int a = scanner.nextInt();
System.out.println("请输入一个整数B:");
int b = scanner.nextInt();
int bigNumber = 1;//临时初始定义最大公约数为0
int number = 0;//初始定一个数,为了后续赋值(比较)使用
int[] aArray = gongYueShu(a);//a的所有约数组成的数组
int[] bArray = gongYueShu(b);//b的所有约数组成的数组
for(int i = 0;i < aArray.length;i++){
for(int j = 0; j< bArray.length;j++){
if(aArray[i] == bArray[j]){//判断是否是共同的约数,是的话,则把该值 赋值给number
number = aArray[i];//暂时把相等的约数赋值给number
if(number > bigNumber){//如果number大于临时定义的最大公约数bigNumber,则把number的值赋值给bigNumber
bigNumber = number;
}
}
}
}
System.out.println("最大公约数为:"+bigNumber);
}
/**
* 求一个数的所有约数
* @Time 2020-5-30 下午10:19:14
* @param number
* @return int[]
*/
public static int[] gongYueShu(int number){
int[] array = new int[number/2+1];//初始定义一个数组,为了存约数
int j = 0;//随意定义的
for(int i = 1; i <= number/2+1;i++){//number/2+1,是为了防止特殊情况出现,比如4的约数为(1,2,4),6的约数为(1,2,3,6)
if(number%i == 0){//代表是约数
array[j] = i;
j++;//如果是约数,则j+1
}
}
return array;
}
}
java语言求最大公约数
猜你喜欢
转载自blog.csdn.net/weixin_42495773/article/details/106448853
今日推荐
周排行