「java最大公约数函数」求最大公约数 java

博主:adminadmin 2022-11-27 14:17:08 64

今天给各位分享java最大公约数函数的知识,其中也会对求最大公约数 java进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java求最大公约数

最大公约数求的没问题。

求最小公倍数的时候,return (a*b)/m;这句代码中的a和b的值已经在父类代码中被

do {

temp_number = a%b;

a=b;

b=temp_number;

}

修改了,所以最终a*b就是0了。

改正:

class Son extends Father{

int m;

int x;

int y;

Son(int a,int b)

{

x=a;

y=b;

super(a,b);

}

public int f(){

m=super.f();

return (x*y)/m;

}

}

这样应该就行了

java中怎样求两个数的最大公约数?

求最大公约数:提示用户输入两个正整数,并求出它们的最大公约数。

方法一:(辗转相除法) 

设用户输入的两个整数为n1和n2且n1n2,余数=n1%n2。当余数不为0时,把除数赋给n1做被除数,把余数赋给n2做除数再求得新余数,若还不为0再重复知道余数为0,此时n2就为最大公约数。 

例:gcd(20,8) 

20=2*8+4 

8=2*4 因此gcd(20,8)=4

代码实现:

import javax.swing.JOptionPane;public class GreatestCommonDivisor{    public static void main(String[] args){

String num1String = JOptionPane.showInputDialog("Please enter the first integer:");        int num1 = Integer.parseInt(num1String);

String num2String = JOptionPane.showInputDialog("Please enter the second integer:");        int num2 = Integer.parseInt(num2String);        if(num1num2){            int temp=num1;

num1=num2;

num2=temp;

}        int remainder = num1%num2;        int n1=num1,n2=num2;        while(remainder!=0){

num1=num2;

num2=remainder;

remainder=num1%num2;

}

JOptionPane.showMessageDialog(null,String.format("The greatest common divisor for %d and %d is %d.",n1,n2,num2));

}

}12345678910111213141516171819202122232425262728

方法二:假设输入的两个整数为n1和n2,检查k(k=2,3,4…)是否为n1和n2的最大公约数,直到k大于两个数中较小的一个。

代码实现:

import javax.swing.JOptionPane;public class GreatestCommonDivisor{    public static void main(String[] args){

String num1String = JOptionPane.showInputDialog("Please enter the first integer:");        int num1 = Integer.parseInt(num1String);

String num2String = JOptionPane.showInputDialog("Please enter the second integer:");        int num2 = Integer.parseInt(num2String);        int gcd=1,k=1;        while(k=num1 k=num2)

{            if(num1%k==0 num2%k==0)

gcd=k;

k++;

}

JOptionPane.showMessageDialog(null,String.format("The greatest common divisor for %d and %d is %d.",num1,num2,gcd));

}

}12345678910111213141516171819202122

方法三:假设输入的两个整数为n1和n2,首先求n1和n2的最小值d,然后依次检验d,d-1,d-2,….,1是否是n1和n2的公约数,这样找到的第一个公约数就是最大公约数。

代码实现:

import javax.swing.JOptionPane;public class test{    public static void main(String[] args){

String num1String = JOptionPane.showInputDialog("Please enter the first integer:");        int num1 = Integer.parseInt(num1String);

String num2String = JOptionPane.showInputDialog("Please enter the second integer:");        int num2 = Integer.parseInt(num2String);        int d;        if(num1num2)

d=num1;        else

d=num2;        while(d=1){            if(num1%d==0 num2%d==0)                break;

d--;

}

JOptionPane.showMessageDialog(null,String.format("The greatest common divisor for %d and %d is %d.",num1,num2,d));

}

}

求 最大公约数 Java

可以直接用hoe,一个Java基础操作库,里面有最大公约数和最小公倍数的算法

//最大公约数

System.out.println(NumberHoe.gcd(2,8));//result = 2

System.out.println(NumberHoe.gcd(12,16,40));//result = 4

//最小公倍数

System.out.println(NumberHoe.lcm(2,3));//result = 6

System.out.println(NumberHoe.lcm(2,6,22));//result = 66

源码如下

java最大公约数算法

//求最大公约数:较大的数除以较小的数,然后将较小的数作为下一次的大数,余数作为小数,直到较小的数为0,返回较大的数

public static int big(int num1,int num2){

int big = 0;

int small = 0;

if(num1num2){

big = num1;

small = num2;

}else{

big = num2;

small = num1;

}

if(small==0){

System.out.println("除数不能为0");

return 0;

}

while(true){

if(small==0){

return big;

}else{

int temp = big;

big = small;

small = temp%small;

}

}

}

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

1.从1开始循环。分别求出m、n的约数。找出最大公约数。

2.判断m、n的大小,从较小的开始循环,每次减一,判断是否为公约数。如果是,则为最大公约数,break;

3.2反过来,从小到大循环,找最大的。

公约数判断:

m%i=0n/i=0。

举第二个例子:

public

class

Test

{

public

static

int

getN(int

m,int

n){

int

i

=

mn?n:m;

for(;i0;i--){

if(m%i==0n%i==0){

System.out.println("m、n的最大公约数为"+i);

break;

}

}

return

i;

}

public

static

void

main(String[]

args)

{

System.out.println(getN(100,

88));

}

}

关于java最大公约数函数和求最大公约数 java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。