用Java求两个数的最大公约数和最小公倍数
发布网友
发布时间:2022-04-30 12:08
我来回答
共5个回答
热心网友
时间:2022-06-22 04:30
//最大公约数
public static int getGreatestCommonDivisor(int x,int y){
int max,min,r;
if(x<y){
max=y;min=x;
}else{
max=x;min=y;
}
while((r=max%min)!=0){
max=min;
min=r;
}
return min;
}
//最小公倍数
public static int getLeastCommonMultiple(int x,int y){
return (x*y)/getGreatestCommonDivisor(x,y);
}追问太给力了,你的回答完美解决了我的问题!
热心网友
时间:2022-06-22 04:31
最大公约数用辗转相除发可以得出。
最小公倍数等于两个数的乘积除以最大公约数
热心网友
时间:2022-06-22 04:31
最小公倍数一会儿发上来,这是最大公约数
import java.util.Scanner;
public class sbAppend{
public static void main(String[] args) {
int one = 0;
int two = 0;
int n = 1;
int max = 0;
Scanner input = new Scanner(System.in);
System.out.println("请输入第一个数:");
one = input.nextInt();
System.out.println("请输入第二个数:");
two = input.nextInt();
while (n <= one) {
//此时n为公约数
if (one % n == 0 && two % n == 0) {
if (n>max) {
max = n;
}
n++;
continue;
}
n++;
}
System.out.println("最大公约数为:"+max);
}
}
这个是求最小公倍数的,希望采纳,谢谢
import java.util.Scanner;
public class sbAppend{
public static void main(String[] args) {
int one = 0;
int two = 0;
int n = 1;
int min = 10000000;
boolean flag = true;
Scanner input = new Scanner(System.in);
System.out.println("请输入第一个数:");
one = input.nextInt();
System.out.println("请输入第二个数:");
two = input.nextInt();
while (flag) {
//此时n为公倍数数
if (n % one == 0 && n % two == 0) {
if (n < min) {
min = n;
break;
}
}
n++;
}
System.out.println("最小公倍数为:"+min);
}
}
热心网友
时间:2022-06-22 04:32
function commonDivisor(x,y){
if(isNaN(x) || isNaN(y)) return "非法输入数据";
var result =[];
var max = Math.max(x,y);
var temp = 1;
while(temp<=max){
if(x%temp==0 && y%temp==0){
result.push(temp);
}else{
}
temp++;
}
return result;
}
//求两个数的最小公倍数
function commonMultiple(x,y){
if(isNaN(x) || isNaN(y)) return "非法输入数据";
var amass = x*y;
var min = Math.min(x,y);
var temp = amass;
var result=1;
while(temp>=min && temp<=amass){
if(temp%x==0 && temp%y==0){
result = temp;
}else{
}
temp--;
}
return result;
}
var t = commonMultiple(4,6);
alert(t.toString())
t = commonDivisor(4,6);
alert(t.toString());
这个是百度知道上 很早就有人采纳的提问,你可以先搜一下,就不用再重复问题了。
热心网友
时间:2022-06-22 04:33
**
*
* @return int
* @tags @param m
* @tags @param n
* @tags @return
* @todo 【方法二】利用辗除法
*/
public static int *(int m, int n) {
while (true) {
if ((m = m % n) == 0)
return n;
if ((n = n % m) == 0)
return m;
}
}