用Java语言求m,n的最大公约数,三种方法

分别使用欧几里德算法、连续整数检测算法、公因数算法实现

第1个回答  2013-03-10
1.从1开始循环。分别求出m、n的约数。找出最大公约数。
2.判断m、n的大小,从较小的开始循环,每次减一,判断是否为公约数。如果是,则为最大公约数,break;
3.2反过来,从小到大循环,找最大的。
公约数判断:
m%i=0&&n/i=0。

举第二个例子:
public class Test {
public static int getN(int m,int n){
int i = m>n?n:m;
for(;i>0;i--){
if(m%i==0&&n%i==0){
System.out.println("m、n的最大公约数为"+i);
break;
}
}

return i;
}

public static void main(String[] args) {
System.out.println(getN(100, 88));
}

}
第2个回答  2013-03-10
import java.io.*;
public class Test {
public static void main(String []args) {
System.out.println("input m,n :");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int m = 0, n = 0;
try
{
m = Integer.parseInt(br.readLine());

n = Integer.parseInt(br.readLine()); }
catch (IOException e)
{
System.out.println("input error!");
}

while(m!=n)

{
if(m>n)
m=m-n;
if(m<n)
n=n-m;
}
System.out.println(m);
}
}追问

谢谢你啊,,但是我想要的是分别使用欧几里德算法、连续整数检测算法、公因数算法实现的代码。。。

追答

欧几里德算法
public static int divisor(int m,int n) {
if (m % n == 0) {
return n;
} else {
return divisor(n,m % n);
}
}

本回答被提问者和网友采纳

java编程,求两个数m,n的最大公约数
10 2011-06-20 Java 输入两个正整数m和n,求其最大公约数 2 2011-04-27 java输入两个正整数m和n,求其最大公约数和最小公倍数 49 2012-03-29 JAVA编程 输入两个正整数m和n,输出它们的最小公倍数和最... 3 2013-03-10 用Java语言求m,n的最大公约数,三种方法 17 2014-12-02 输入两个...

java最大公约数算法
int n=scan2.nextInt();System.out.println("欧几里得算法求最大公约数是:"+gcd(m,n));System.out.println("连续整数检测算法求最大公约数是:"+gcd1(m,n));System.out.println("公因数法求最大公约数是:"+gcd2(m,n));} }

用JAVA 输入两个正整数m和n,求其最大公约数和最小公倍数。 不懂它的...
最大公约数不是有辗转相除法吗 最小公倍数 lcm(x,y) = x×y ÷ gcd(x,y)public static int GCD(int a, int b) { if (b==0) return a; return GCD(b,a%b);}

java:输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利 ...
辗除法——辗转相除法, 又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公因子的算法。代码:public class Test {public static final void main(String[] args) {System.out.println("请输入两个正整数");System.out.print("第一个正整数:");Scanner scanner = new Scanner(System...

java求m,n的最大公约数问题
int temp = 0;int temp_1 = 0;int max = 0;if(m >= n){ temp = n;temp_1 = m;}else{ temp = m;temp_1 = n;} for(int i = 1; i <= temp;i++){ if(temp%i == 0 && temp_1%i == 0){ max = i;} } System.out.println(max);自己写的。 有疑问可以交流。

java语言编写的输入两个数 求两数的最大公约数最小公陪数
public static void main(String args[]) { int a = 3; int b = 9; int counter = 0; int commonDivisor = 0; \/\/公约数 \/\/求最大公约数 \/\/ http:\/\/baike.baidu.com\/view\/47637.htm 最大公约数,求法 if(a>b) counter = b; else counter = a; ...

JAVA 输入两个正整数m,n(用长整数表示),计算最大公约数 要代码
);} catch (IOException e) { \/\/ TODO Auto-generated catch block e.printStackTrace();} int flag = 0;for (int i = 1; i <= a; i++) { if(a%i==0){ if(b%i==0){ flag=i;} } } System.out.println("最大公约数为"+flag);} } 恩,这样就妥了,万望采纳呀 ...

用java编写一个程序段,输入两个正整数m和n,求其最大公约数和最小公倍...
import java.util.Scanner;public class Max_Min { public static void main(String[]args){ Scanner scan = new Scanner(System.in); System.out.print("请输入第一个整数:\\n"); int a = scan.nextInt(); System.out.print("请输入第二个整数:\\n"); int b = scan...

java中怎样求两个数的最大公约数?
方法一:(辗转相除法) 设用户输入的两个整数为n1和n2且n1>n2,余数=n1%n2。当余数不为0时,把除数赋给n1做被除数,把余数赋给n2做除数再求得新余数,若还不为0再重复知道余数为0,此时n2就为最大公约数。 例:gcd(20,8) 20=2*8+4 8=2*4 因此gcd(20,8)=4 代码实现:import javax...

怎么用JAVA的Eclipse求两个数的最小公倍数和最大公约数
m=n;n=t;} r=m%n;m=n;n=r;}while(r!=0);System.out.println("最大公因数是:"+m);System.out.println("最小公倍数是:"+total\/m);} } 参考资料:http:\/\/zhidao.baidu.com\/question\/32772445.html?si=2

相似回答