
用Java求两个数的最大公约数和最小公倍数
展开全部
//最大公约数
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);
}
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);
}
追问
太给力了,你的回答完美解决了我的问题!
展开全部
最大公约数用辗转相除发可以得出。
最小公倍数等于两个数的乘积除以最大公约数
最小公倍数等于两个数的乘积除以最大公约数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最小公倍数一会儿发上来,这是最大公约数
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);
}
}
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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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());
这个是百度知道上 很早就有人采纳的提问,你可以先搜一下,就不用再重复问题了。
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());
这个是百度知道上 很早就有人采纳的提问,你可以先搜一下,就不用再重复问题了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
**
*
* @return int
* @tags @param m
* @tags @param n
* @tags @return
* @todo 【方法二】利用辗除法
*/
public static int gcd(int m, int n) {
while (true) {
if ((m = m % n) == 0)
return n;
if ((n = n % m) == 0)
return m;
}
}
*
* @return int
* @tags @param m
* @tags @param n
* @tags @return
* @todo 【方法二】利用辗除法
*/
public static int gcd(int m, int n) {
while (true) {
if ((m = m % n) == 0)
return n;
if ((n = n % m) == 0)
return m;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |