標簽(空格分隔): 九度OJ
原題地址:http://ac.jobdu.com/PRoblem.php?pid=1438
給定兩個正整數,計算這兩個數的最小公倍數。
輸入包含多組測試數據,每組只有一行,包括兩個不大于1000的正整數。
對于每個測試用例,給出這兩個數的最小公倍數,每個實例輸出一行。
BigInteger類好!
對于這個題,我們要明確,a,b的最小公倍數為兩個樹的成績除以他們的最大公約數。證明如下。
k=a*b是a,b的公倍數,則a,b的最小公倍數不大于k設a,b的公約數為c,則有:k=a*bk/c=b*(a/c)a/c為整數,k/c同時為a,b的倍數。要去的最小的公倍數,那么就要找到最大的公約數c使k/c最小,則k/c為要求的最小公倍數。本題java方法如下。C++略。
import java.util.*;import java.math.*;public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String line =scanner.nextLine(); String[] params = line.split(" "); BigInteger a = new BigInteger(params[0]); BigInteger b = new BigInteger(params[1]); System.out.println(a.multiply(b).divide(a.gcd(b))); } }}2017 年 3 月 7 日
新聞熱點
疑難解答