求最大公因数的三种算法

package october.exer;

import java.util.Scanner;

import org.junit.Test;

//求最大公因数的三种算法
public class MathRegular {
	@Test
	// 辗转相法求最大公因数
	public void method1() {
		Scanner scanner = new Scanner(System.in);
		int a = scanner.nextInt();
		int b = scanner.nextInt();
		int temp;
		do {
			temp = b;
			b = a % b;
			a = temp;
		} while (b != 0);
		System.out.println("最大公因数:" + a);
	}

	@Test
	// 相减法求最大公因数
	public void method2() {
		Scanner scanner = new Scanner(System.in);
		int a = scanner.nextInt();
		int b = scanner.nextInt();
		do {
			if (a > b) {
				a = a - b;
			} else if (a < b) {
				b = b - a;
			} else {
				break;
			}
		} while (a != b);
		System.out.println("最大公因数	:" + a);
	}
	
	@Test
	//穷举法
	public void method3(){
		Scanner scanner = new Scanner(System.in);
		int a = scanner.nextInt();
		int b = scanner.nextInt();
		int max = a>b?a:b;
		int min = a<b?a:b;
		int i;
		for(i=min;i>=1;i--){
			if(max%i==0&&min%i==0){
				break;
			}
		}
		System.out.println("最大公因数	:" + i);
	}
	
}

猜你喜欢

转载自blog.csdn.net/qq_38697437/article/details/82934875
今日推荐