1. 程式人生 > >求最小公倍數(java)

求最小公倍數(java)

import java.util.*;

public class GetLCM {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int a = scan.nextInt();
		int b = scan.nextInt();
		
		int mod = a % b;
		if(mod == 0)
			System.out.println(a);
//
		int out =  getMaxMult(a,b);
		int result = a*b/out;
		System.out.println(result);
	}
	
	private static int getMaxMult(int a, int b) {
		int m = a % b;
		while (m != 0) {
			a = b;
			b = m;
			m = a % b;
		}
		return b;
	}

}

注意:

1、先求出最大公約數,利用兩數的乘積除以最大公約數得到最小公倍數

2、考慮兩數整除的情況

相關推薦

小公倍數java

import java.util.*; public class GetLCM { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int a =

輸入兩個正整數m和n,大公約數和小公倍數java

package com.gaoshixian; import java.util.Scanner; public class Test { public static void main(String[] args) { int a, b, num1, num2,

程式設計練習題:實現大公約數和小公倍數Java

使用輾轉相除法可以快速的實現求最大公約數,而最小公倍數可以通過最大公約數求出。那麼輾轉相除法的原理是什麼呢? 輾轉相除法,又名歐幾里德演算法,是已知最古老的演算法,其可追溯至公元前300年前。

大公約數和小公倍數java語言

package com.sun.maxCommonDivisorAndminCommonMultiple; /** * * @author:孫創 * @date:2017年4月10日 * @Discription://求最大公約數和最小公倍數 */ publi

hdu2028小公倍數歐幾裏得

urn class pac color mod ostream 兩個 pla spl 用到了歐幾裏得算法: int gcd(int a,int b) { if(b==0)return a; gcd(b,a%b); } View Code 這道題強調

演算法 - 兩個自然數的小公倍數C++

  //**************************************************************************************************** // // 求兩個自然數的最小公倍數 - C++ - by Chimomo /

HDU - 1108 小公倍數LCM

Description 給定兩個正整數,計算這兩個數的最小公倍數。 Input 輸入包含多組測試資料,每組只有一行,包括兩個不大於1000的正整數. Output 對於每個測試用例,給出這兩個數的最小公倍數,每個例項輸出一行。 Sample Input 10

C語言例項—輸入兩個正整數m和n,大公約數和小公倍數gcc 編譯

1.輾轉相除法 輾轉相除法是古希臘求兩個正整數的最大公約數的,也叫歐幾里德演算法,其方法是用較大的數除以較小的數,上面較小的除數和得出的餘數構成新的一對數,繼續做上面的除法,直到出現能夠整除的兩個數,其中較小的數(即除數)就是最大公約數。以求288和123的最大公約數為例,操作如下: 288÷1

c++中兩個數的大公約數和小公倍數輾轉相除法

輸入兩個正整數m和n,求其最大公約數和最小公倍數 #include "stdafx.h" #include<iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) {

Codeforces Round #383 (Div. 2) C遞迴找環小公倍數

題目連結 題目大意:表示意思有點繞,什麼owww的,通俗的來講就是找環,問的是滿足x走到y的步數可以讓y走到x。 分析 那麼如果x走到x是一個偶數n,說明可以用n/2走到y且y不等於x 然後再用n/2步數走到x。這個環的權值就是n/2; 如果n是一個奇

java實現大公約數和小公倍數每天一道演算法題

題目:輸入兩個正整數,求其最大公約數和最小公倍數。 程式思路: 除數不能為0 將較大的那個數對較小的那個數取餘;(如果a>=b,那就a%b), 取餘得出的結果為下次預算的除數,上面較小的那個數將作為被除數 知道運算到較小為0時,返回較大的數,這個數就

HDU 1019 Least Common Multiple小公倍數

Input will consist of multiple problem instances. The first line of the input will contain a single integer indicating the number of problem instances. Eac

大公約數和小公倍數遞迴演算法及非遞迴演算法

最近做題目發現一些題目需要求數的最大公約數和最小公倍數,想想最大公約數和最小公倍數平時做數學的時候感覺不是很難,但是突然要程式設計來實現,卻一下子不知所措了,後來看了下別人寫的,發現其實也不算特別難。最小公倍數其實只要一個公式,即整數A和整數B的最小公倍數為A*B/gcd(

兩個整數的大公約數和小公倍數通過呼叫自定義函式實現

>#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int yue(int x, int y); //int yue_2(int

BZOJ4537 HNOI2016小公倍數莫隊+並查集

  考慮邊只有一種權值的簡化情況。那麼當且僅當兩點可以通過邊權<=x的邊連通,且連通塊內最大邊權為x時,兩點間存在路徑max為x的路徑。可以發現兩種權值是類似的,當且僅當兩點可以通過邊權1<=x且邊權2<=y的邊連通,且連通塊內最大邊權1為x、最大邊權2為y時,兩點間存在路徑max為(x,y

初級演算法——大公約數與小公倍數藍橋杯

思路:這裡使用的是輾轉相除法求最大公約數,而  最小公倍數 = 兩數相乘/最大公約數   #include<stdio.h> int main(){ int m,n,a,b,c; printf("input two numbers:"); scanf("%d%d",&a

W3Cschool中級指令碼演算法15.小公倍數演算法挑戰

最小公倍數演算法挑戰 問題: 找到所提供引數的最小公倍數,這兩個引數可以均勻分配,以及這些引數之間範圍內的所有最小公倍數。 範圍是兩個數字構成的陣列,兩個數字不一定按數字順序排序。 例如對 1 和 3 —— 找出能被 1 和 3 和它們之間所有數字整除的最小公倍數。

7-26 大公約數和小公倍數 15 分

本題要求兩個給定正整數的最大公約數和最小公倍數。 輸入格式: 輸入在一行中給出兩個正整數M和N(≤1000)。 輸出格式: 在一行中順序輸出M和N的最大公約數和最小公倍數,兩數字間以1空格分隔。 輸入樣例: 511 292 輸出樣例: 73 2044 鳴謝

大公約數和小公倍數Greatest Common Divisor and Least Common Multiple

定義: 最大公約數(英語:greatest common divisor,gcd)。是數學詞彙,指能夠整除多個整數的最大正整數。而多個整數不能都為零。例如8和12的最大公因數為4。 最小公倍數是數論中的一個概念。若有一個數$$X$$,可以被另外兩個數$$A$$、$$B$$整除,且$$X$$大於(或等於)$

51Nod1355:斐波那契的小公倍數 min-max容斥+Mobius反演

傳送門 題解: 對於fib數列有gcd(fi,fj)=fgcd(i,j)gcd(fi,fj)=fgcd(i,j)(可用歸納法證明)。 那麼對於gcd(f{T})gcd(f{T})顯然等於fgcd{