① java 計算最小公倍數的問題
汗,這是歐幾里得演算法求最大公約數..
int r=m%n;
while(r!=0)
{ m=n;
n=r;
r=m%n;
}
這是歐幾里得演算法的實現...
歐幾里德演算法又稱輾轉相除法,用於計算兩個整數a,b的最大公約數。其計算原理依賴於下面的定理:
定理:gcd(a,b) = gcd(b,a mod b)
證明:a可以表示成a = kb + r,則r = a mod b
假設d是a,b的一個公約數,則有
d|a, d|b,而r = a - kb,因此d|r
因此d是(b,a mod b)的公約數
假設d 是(b,a mod b)的公約數,則
d | b , d |r ,但是a = kb +r
因此d也是(a,b)的公約數
因此(a,b)和(b,a mod b)的公約數是一樣的,其最大公約數也必然相等,得證
② java求最小公倍數和最大公約數
/**
* 最大公約數
* 更相減損法:也叫更相減損術
* ??? 第一步:任意給定兩個正整數;判斷它們是否都是偶數。若是,則用2約簡;若不是則執行第二步。
* 第二步:以較大的數減較小的數,接著把所得的差與較小的數比較,並以大數減小數。繼續這個操作,直到所得的減數和差相等為止。
* @param a
* @param b
* @return
*/
public static int gongyue( int a, int b){
if(a == b){
return a;
} else{
return gongyue(abs (a-b),min(a,b));
}
}
/**
* 最大公約數
* 輾轉相除法:輾轉相除法是求兩個自然數的最大公約數的一種方法,也叫歐幾里德演算法.
* 例如,求(319,377):
* ∵ 377÷319=1(餘58)
* ∴(377,319)=(319,58);
* ∵ 319÷58=5(餘29),
* ∵ 58÷29=2(餘0),
* ∴ (58,29)= 29;
* ∴ (319,377)=29.
* @param a
* @param b
* @return
*/
public static int gongyue1( int a, int b){
if(b!=0){
return gongyue1(b,a%b);
} else{
return a;
}
}
/**
* 最小公倍數
* 兩個數乘積除去最大公約數即可
* @param a
* @param b
* @return
*/
public static int gongbei( int a, int b){
return a*b/gongyue(a,b);
}
public static int abs(int i){
return i>=0?i:-i;
}
public static int min(int a,int b){
return a<b?a:b;
}
③ java編程出三個數中的最小公倍數
你好,這是代碼
LeastCommonMultipleTest.java
{
publicstaticvoidmain(String[]args){
//三個數
inta=7,b=9,c=11;
//最小公倍數
intnumber=0;
//從0開始判斷,無上限(最大可能是三個數字的乘積)
while(!isCommonMultipleNum(number,newint[]{a,b,c})){
//從0開始判斷,不是公倍數就+1
number++;
}
System.out.printf("最小公倍數是:"+number);
}
/**
*判斷某數是否為幾個數字的公倍數
*
*@paramnumber
*要判斷是否為公倍數的數字
*@paramarr
*數字數組
*@return判斷結果,是公倍數返回true,不是返回false
*/
(intnum,int[]arr){
//循環判斷每一個數字
for(inti=0;i<arr.length;i++){
intcurrent=arr[i];
if(num<current||num%current!=0){
returnfalse;
}
}
returntrue;
}
}
④ 如何用java寫一個求出最小公倍數的程序
int minMultiple(int a, int b) {
int r = a, s = a, t = b;
if (a < b) {
r = a;
a = b;
b = r;
}
while (r != 0) {
r = a % b;
a = b;
b = r;
}
return s * t / a;
}
從演算法上講絕對優於樓上的樓上
⑤ java 求最大公約數,最小公倍數
import java.util.Scanner;
public class C{
public static int fun1(int a1,int b1){
int c;
c=a1%b1;
while (c>0)
{a1=b1;
b1=c;
c=a1%b1;
//return b1;
}
return b1; //把return寫在這里;
}
public static void main(String[] args) {
int a,b,temp;
int m;
Scanner in=new Scanner(System.in);
a=in.nextInt();
b=in.nextInt();
if(a<b)
{temp=a;a=b;b=temp;
}
m=fun1(a,b);
System.out.println("最大公約數為:"+m);
System.out.println("最小公倍數為:"+(a*b)/m);
}
}
⑥ 求JAVA最小公倍數的代碼
package one;
import java.util.*;public class ProOne {
//題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數。
//程序分析:利用輾除法。
public static void main(String[] args)
{
int m=0,n=0,m1=0,n1=0;
int a;
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入m的值:");
m=scanner.nextInt();
System.out.println("請輸入n的值:");
n=scanner.nextInt();
//將輸入的m和n值備份;
m1=m;
n1=n;
//取得兩個數相除的余數;
a=m%n;
while(a!=0)
{
m1=n1;n1=a;a=m1%n1;
}
System.out.println("m,n的最大公約數為:"+n1);
//求兩個數字的最小公倍數的方法為:(兩個數的乘積)/(兩個數字的最大公約數);
System.out.println("m,n兩個數的最小公倍數為:"+m*n/n1);
}
}//我以前做的,你看看吧!
⑦ 簡單的java程序 最小公倍數
packagecom.liu.test;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
publicclassTest{
publicstaticintdoMax(inta,intb){
if(b==0)
returna;
else
returndoMax(b,a%b);
}
publicstaticintdoMin(inta,intb){
return(a*b)/doMax(a,b);
}
publicstaticintBubbleSort(inta[]){
for(inti=a.length-1;i>0;i--){
booleanflag=false;
for(intj=0;j<i;j++){
if(a[j+1]<a[j]){
inttemp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=true;
}
}
if(!flag){
break;
}
}
returna[a.length-1];
}
publicstaticvoidmain(String[]args)throwsNumberFormatException,IOException{
while(true){
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
System.out.println("輸入一個正整數:");
inttarget=Integer.parseInt(br.readLine());
if(target<1||target>106){
System.out.println("輸入必須在1到106之間");
}else{
inta[]=newint[target];
for(inti=1;i<target;i++){
for(intj=i+1;j<target-1;j++){
a[i-1]=doMin(i,j);
}
}
System.out.println(BubbleSort(a));
break;
}
}
}
}
⑧ 求最小公倍數的java method的code
public int leastCommonMultiple(int value1, int value2) {
int flag = value1;
int temp1 = value1;
int temp2 = value2;
if (value1 < value2) {
flag = value1;
value1 = value2;
value2 = flag;
}
while (flag != 0) {
flag = value1 % value2;
value1 = value2;
value2 = flag;
}
return temp1 * temp2 / value1;
}
⑨ 用Java 求兩個數的最小公倍數
//求最大公約數
publicstaticintcommonDivisor(intn,intm){
//輾轉相除是用大的除以小的。如果nwhile(n%m!=0){
inttemp=n%m;
n=m;
m=temp;
}
returnm;
}
//求最小公倍數
publicstaticintcommonMultiple(intn,intm){
returnn*m/commonDivisor(n,m);//兩數相乘除以最大公約數
}
⑩ java 如何得到多個數據的最小公倍數啊
這個JDK裡面貌似真沒有,不過你可以用這個:
http://blog.163.com/zhao_8420001/blog/static/50370196201243133828127/