程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> NYOJ977 最大的最小公倍數

NYOJ977 最大的最小公倍數

編輯:C++入門知識

原題鏈接

這題的思路是n小於3時特殊考慮,n大於3時,如果n為奇數,則可以確定的是n、n-1、n-2三數肯定互質(因為n和n-2之間的最大公約數不可能為2,若為3的話n至少要比n-2大3,其他約數更不可能),故此三數即為最小公倍數;如果n為偶數,n、n-1、n-2三數肯定不互質,那麼候選數就剩倆n、n-1、n-3與n-2、n-1、n-3,若n能被3整除,則LCM即為右邊三數乘積,否則為左邊三數乘積。


import java.util.Scanner;

public class Main{
	public static void main(String[] args){
		Scanner cin = new Scanner(System.in);
		int n;
		long a;
		while(cin.hasNext()){
			n = cin.nextInt();
			a = 1;
			if(n < 3){
				System.out.println(n);
				continue;
			}
			
			if(n % 2 == 1) a = (long)n * (n-1) * (n-2);
			else{
				if(n % 3 == 0) a = (long)(n-3) * (n-1) * (n-2);
				else a = (long)n * (n-1) * (n-3);
			}
			System.out.println(a);
		}
	}
}
796479 長木 最大的最小公倍數 Accepted 117 1233 java 04-04 17:24:39

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved