关于求两个数的最小公约数和最小公倍数问题【经典算法】!

 
import java.util.*;

//输出两个正整数m和n,求出其最大公约数和最小公倍数
public class Test_6 {

	public static void main(String[] args) {
		
		System.out.print("请输入两个正整数m和n:");
					Scanner Input =new Scanner (System.in);
						int a=Input.nextInt();
						int b=Input.nextInt();
						Test_6  t=new Test_6();
						int m = t.method(a, b);
						int n=a*b/m;
						System.out.print("最大公约数是:"+m+"     "+"最大共倍数是:"+n);

		
	}
	
	
			public  int  method(int x, int y){
				
								//1.把m n进行排序保证用户输入的第一个数是最大的
										int temp;
										if(x<y){
											temp=y;
											y=x;
											x=temp;							
										}
						
										while(y!=0){  //循环取值,将娶到的值赋给x ,直到y不等于0      牛
											if(x==y)
												return  x;
											else{
												int k=x%y;
												x=y;
												System.out.print("x="+x+"    ");
												y=k;	
											}

										}
										
										return x; //  返回到主方法中返回到int m中  其实m就是最小公约数
										
										
						}
									
								}

		

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 假设个数为a和b,它们的最大公约数记为gcd(a,b),最小公倍数记为lcm(a,b)。 最大公约数可以使用辗转相除法,也称为欧几里得算法。具体步骤如下: 1. 用较大的数除以较小的数,得到商和余数。 2. 若余数为0,则较小的数就是最大公约数。 3. 若余数不为0,则把较小的数作为被除数,上一步得到的余数作为除数,继续做除法运算,直到余数为0为止。 最大公约数:gcd(a,b) 当a<b时,交换a和b的值,使a>=b a%b得到余数r,若r=0,则b就是最大公约数;否则,令a=b,b=r,再继续执行取模运算,直到r=0,此时b就是最大公约数。 代码如下: ```python def gcd(a, b): if a < b: a, b = b, a while b != 0: r = a % b a = b b = r return a ``` 最小公倍数可以使用最大公约数来计算,因为有如下公式: lcm(a,b) = a * b / gcd(a,b) 代码如下: ```python def lcm(a, b): return a * b // gcd(a, b) ``` 注意,这里使用了整除运算符 `//`,以保证最小公倍数为整数。 ### 回答2: 最大公约数是指能同时整除个数的最大正整数,最小公倍数是指能同时被个数整除的最小正整数。 个数的最大公约数可以通过种方法: 1.因数分解法:将个数分别进行因数分解,然后找出个数的全部公共因数,并将这些公共因数相乘,即可得到最大公约数。 2.辗转相除法:将较大的数除以较小的数,得到余数,然后再用除数除以余数,再得到新的余数,重复这个过程,直到余数为0。此时,被除数就是最大公约数个数最小公倍数可以使用最大公约数解。最小公倍数等于个数的乘积除以最大公约数。 举个例子来说明: 假设要个数6和8的最大公约数最小公倍数: 首先对这个数进行因数分解,6可以分解为2 * 3,8可以分解为2 * 2 * 2。公共因数为2,所以最大公约数为2。 最小公倍数可以通过最大公约数得。最小公倍数等于个数的乘积除以最大公约数,即6 * 8 / 2 = 24。 所以,6和8的最大公约数为2,最小公倍数为24。 ### 回答3: 最大公约数是指能够同时整除个数的最大正整数。最小公倍数是指能够同时被个数整除的最小正整数。 个数的最大公约数的方法可以采用辗转相除法,即将个数中较大的数除以较小的数,得到的余数再除以较小的数,如此循环,直到余数为0。最后除数就是个数的最大公约数个数最小公倍数的方法可以通过个数的乘积除以最大公约数来得到。即最小公倍数等于个数的乘积除以最大公约数。 例如,15和20的最大公约数最小公倍数: 首先,使用辗转相除法最大公约数: 20 ÷ 15 = 1 余5 15 ÷ 5 = 3 余0 因此,最大公约数为5。 然后,通过最大公约数最小公倍数最小公倍数 = 15 × 20 ÷ 5 = 60 所以,15和20的最大公约数为5,最小公倍数为60。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值