package com.qf.zuoye16;
import java.util.Scanner;
//最大公约数问题:
public class GongYueShu1 {
public static void main(String[] args) {
Scanner s = new Scanner (System.in);
System.out.println("请输入两个整数:");
int a = s.nextInt();
int b = s.nextInt();
int zuidagongyueshu = 0;
if(a < b) {
int max = b;
b = a;//把b赋值给a
a = max;//实现 a b 之间保证b最小
}
for(int i=1; i <= b; i ++ ) {// 例如输入 6和3, 此时3就是b 最小, 公约数也是3
if(a % i == 0 && b % i == 0 ) { //满足公约数的条件
if(zuidagongyueshu <= i) { //i是找到的公约数,要找最大的公约数
zuidagongyueshu = i;// 给大的公约数赋值,不断循环赋值找到最大的,当找到的公约数最大了 就是没法整除的时候的最大值
//或等于输入小的整数的值时,再往下就不符合了 i就不再自加了 此时i就是这个最大公约数,赋值给了zuidagongyueshu
}
}
}System.out.println("最大公约数:" + zuidagongyueshu);
System.out.println("最小公倍数:" + (a * b / zuidagongyueshu));// 辗转相除法
}
}
求最大公约数 最小公倍数问题
最新推荐文章于 2024-07-08 17:49:05 发布