求两个数的最大公约数和最小公倍数

import java.util.Scanner;

//求两个数的最大公约数,最小共倍数。
public class CommonMaxDivisor {
      public static void main(String[] args){
          Scanner scanner=new Scanner(System.in);
          int m=scanner.nextInt();
          int n=scanner.nextInt();
          scanner.close();
          CommonMaxDivisor cmd=new CommonMaxDivisor();
          int result=cmd.commonMaxDivisor(n, m);
          int result1=cmd.commonMinMultiple(n, m);
          System.out.println(result+","+result1);
      }
      public int commonMaxDivisor(int n,int m){
          int min=n<m?n:m;
          int max=n>m?n:m;
          int result=1;
          for(int i=1;i<min;i++){
              if(max%i==0&&min%i==0)
                  result=i;
          }
         return result;
      }
      public int commonMinMultiple(int n,int m){
          return m*n/commonMaxDivisor(n,m);
      }
}
时间: 2024-12-26 00:58:34

求两个数的最大公约数和最小公倍数的相关文章

写一个方法,求两个数的最大公约数和最小公倍数。

package homework0702; /* * 最大公约数 利用辗转相除法求解两个正整数的最大公约数 在循环中,只要除数不等于0,用较大的数除以较小的数,将小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环较小的数,如此循环直到较小的数值为0,返回较大的数.即为最大公约数. 辗转相除法(欧几里得算法) 定理:两个整数的最大公约数等于其中较小的那个数和两数的相除余数的最大公约数.最大公约数(greatest common divisor)缩写为gcd. 最小公倍数 最小公倍数 = (a

求两个数的最大公约数和最小公倍数 C语言

C程序设计第八章的第一道题目,求两个数的最大公约数和最小公倍数.需要注意一下几点: 1.最大公约数和最小公倍数间的关系: 设两个数是a,b最大公约数是p,最小公倍数是q 那么有这样的关系:ab=pq 所以q=ab/p.2.任意整数和0的公约数是该整数的所有约数,所以它们的最大公约数为该整数本身.3.碾转相除法:被除数%除数=余数,如果余数不为0,就让原来的除数做为被除数,余数作为除数,再进行运算 被除数%除数=余数,直到得到的余数为0为止,此时的除数就是最大公约数. #include <stdi

5.2求两个数的最大公约数和最小公倍数

此处用的是最简单的遍历方法,先求出2个数的最小公倍数,再用两个数之积去除以最小公倍数就能够得到最大公约数. #include <iostream> #include <cmath> using namespace std; int main() { int a,b,c,d; cin>>a>>b; for(int i=a;;i++) { if(i%a==0 &&i%b==0) { c=i; break; } } d=a*b/c; cout<

c语言求两个数的最大公约数和最小公倍数

#include <stdio.h> int main() { // 两个数的最大公约数求法:最大公约数是这两个数之间公共最大的约数,我们可以先找到这两个数的比较小的数: int num1, num2, gys, gbs; scanf("%d,%d", &num1, &num2); int ji = num2*num1; if (num1>num2) { // 找到两个数较小的数 int temp; temp = num1; num1 = num2;

如何求两个数的最大公约数和最小公倍数

最大公约数:也称最大公因数.最大公因子,指两个或多个整数共有约数中最大的一个. 最小公倍数:几个数共有的倍数叫做这几个数的公倍数,其中除1以外最小的一个公倍数,叫做这几个数的最小公倍数. 特点:

C#趣味程序---求两个数的最大公约数和最小公倍数

using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("请输入一个数:"); int num1 = int.Parse(Console.ReadLine()); Console.WriteLine("请输入另一个数:"); int num2 = int.Parse(Console.ReadLin

求两个数的最大公约数与最小公倍数

import java.util.*; public class S{ public static void main(String[] args){ Scanner input = new Scanner(System.in); int num1,num2,remainder,m,n; System.out.print("请输入一个正整数:"); num1 = input.nextInt(); System.out.print("请再输入一个正整数:"); num

求N个数的最大公约数和最小公倍数

除了分解质因数,还有另一种适用于求几个较小数的最大公约数.最小公倍数的方法 下面是数学证明及算法实现 令[a1,a2,..,an] 表示a1,a2,..,an的最小公倍数,(a1,a2,..,an)表示a1,a2,..,an的最大公约数,其中a1,a2,..,an为非负整数.对于两个数a,b,有[a,b]=ab/(a,b),因此两个数最小公倍数可以用其最大公约数计算.但对于多个数,并没有[a1,a2,..,an]=M/(a1,a2,..,an)成立,M为a1,a2,..,an的乘积.例如:[2,

一天一个算法:求俩个数的最大公约数和最小公倍数

求俩个数的最大公约数和最小公倍数 解答: 当较大数除以较小数余数等于0时,较小数为最大公约数. 两数相乘结果除以它们的最大公约数为最小公倍数. int cdivisor(int x1,int y1) { int r,temp; if (x1<y1) { temp =x1; x1 = y1; y1 = temp; } while(x1%y1)//当较大数除以较小数余数等于0时,较小数为最大公约数 { r=x1%y1; x1=y1; y1=r; } return y1; } int cmultipl