public class Gysgbs { // 求m和n的最大公约数 public static int gongyue(int m, int n) { while (m % n != 0) { int temp = m % n; m = n; n = temp; } return n; } // 求m和n的最小公倍数 public static int gongbei(int m, int n) { return m * n / gongyue(m, n); } public static void main(String[] args) { int m = 8; int n = 6; System.out.println("公约数: " + gongyue(m, n)); System.out.println("公倍数: " + gongbei(m, n)); } } ---------- 上面代码我已花了半个小时测试并通过,如果感到对您有些帮助,或有其它不清楚的地方,请到我的java技术网站发帖交流,希望本站能成为您java学习路上的一个朋友
public static void main(String[] args) { int x = 9; int y = 108; int max = Math.max(x, y); int min = Math.min(x, y); int temp = -1; for (; temp != 0;) { temp = Math.abs(max - min); max = max - min; } System.out.println(min);//公约数 System.out.println(x * y / min);//公倍数; }
小弟写的,写得不好的,请指正。public class CommonDivisor { public static void main(String args[]) { int a = 3; int b = 9; int counter = 0; int commonDivisor = 0; //公约数
import java.util.List;
import java.util.Scanner;public class Test { /**
* @param args
*/
//分解质因数法求最大公约数
public Integer split1(Integer num1,Integer num2){
int max=Math.max(num1, num2);
int min=Math.min(num1, num2);
int count=1;
for(int i=2;i<=max;i++){
while(max%i==0&&min%i==0){
count=count*i;
max=max/i;
min=min/i;
}
}
return count;
}
//最小公倍数
public Integer split2(Integer num1,Integer num2){
int max=Math.max(num1, num2);
int min=Math.min(num1, num2);
int count=1;
for(int i=2;i<max;i++){
while(max%i==0&&min%i==0){
count=count*i;
max=max/i;
min=min/i;
}
}
return count*max*min;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test test=new Test();
Scanner scan=new Scanner(System.in);
System.out.println("Please input the first number:");
Integer num1=scan.nextInt();
System.out.println("Please input the second number:");
Integer num2=scan.nextInt();
Integer c1=test.split1(num1, num2);
Integer c2=test.split2(num1, num2);
System.out.println(num1+"和"+num2+"的最大公约数为:"+c1);
System.out.println(num1+"和"+num2+"的最小公倍数为:"+c2);
}}
import java.util.List;
是不要的,刚在用list试,没有删除这两个包
// 求m和n的最大公约数
public static int gongyue(int m, int n) {
while (m % n != 0) {
int temp = m % n;
m = n;
n = temp;
}
return n;
} // 求m和n的最小公倍数
public static int gongbei(int m, int n) {
return m * n / gongyue(m, n);
} public static void main(String[] args) {
int m = 8;
int n = 6;
System.out.println("公约数: " + gongyue(m, n));
System.out.println("公倍数: " + gongbei(m, n));
}
}
----------
上面代码我已花了半个小时测试并通过,如果感到对您有些帮助,或有其它不清楚的地方,请到我的java技术网站发帖交流,希望本站能成为您java学习路上的一个朋友
int y = 108; int max = Math.max(x, y);
int min = Math.min(x, y); int temp = -1; for (; temp != 0;) {
temp = Math.abs(max - min);
max = max - min;
} System.out.println(min);//公约数 System.out.println(x * y / min);//公倍数; }
{
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;
for(int i=1; i<=counter; i++)
{
if(a%i == 0)
if(b%i == 0)
commonDivisor = i;
}
System.out.println("最大公约数为: " + commonDivisor);
//求最小公倍数
//http://baike.baidu.com/view/341375.htm 最小公倍数,求法
System.out.println("最小公倍数为: " + a*b/commonDivisor);
}
}