❗❗❗必看:
下列题我全部都使用 Java 语言写的,并且均可以提交成功,获得Accepted 结果的. 如果代码和详解看了之后,对答案有任何疑问,都可以在评论区提出来,我都会一个一个回答.
❗❗❗感谢大家的支持,如果喜欢我的博客,关注 点赞 收藏 评论一波,非常感谢!!!
给定两个正整数,求它们的最大公约数。
Input
有多组数据,每行为两个正整数,且不超过int可以表示的范围。
Output
行对应输出最大公约数。
输入
4 8
8 6
200 300
输出
4
2
100
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNextInt()) {
int a = scanner.nextInt();
int b = scanner.nextInt();
System.out.println(gcd(a,b));
}
scanner.close();
}
private static int gcd(int a, int b) {
while(b!=0) {
int temp = b;
b = a%b;
a = temp;
}
return a;
}
}
这道题目我们可以通过欧几里得算法(也称辗转相除法)来解决。这是一种求两个正整数最大公约数(GCD)的高效算法。
这道题目我们可以通过欧几里得算法(也称辗转相除法)来解决。这是一种求两个正整数最大公约数(GCD)的高效算法。
两个数的最大公约数等于其中较小的那个数和两个数相除余数的最大公约数。