网站首页 > 文章中心 > 其它

计算公约数java代码

作者:小编 更新时间:2023-08-23 10:40:26 浏览量:185人看过

Java求最大公约数

public?class?Gcd?{

计算公约数java代码-图1

public?static?void?main(String[]?args)?{

for(int?i=0;i10;i++)?{

System.out.println(a+","+b+"\t=\t"+getNumber(a,b));

}

public?static?int?getNumber(int?m,int?n){

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

return?n;

else?{

return?getNumber(n,m?%?n);

JAVA如何编写程序求两个数的最大公约数和最小公倍数?

自然语言描述计算两个非负整数p 和q 的最大公约数:若q 是0,则最大公约数为p.否则,将p 除以q 得到余数r,p 和q 的最大公约数即为q 和r 的最大公约数.Java code 求公约数

public static int gcd(int p, int q){ if (q == 0) return p; int r = p % q; return gcd(q, r);}

计算公约数java代码-图2

public static int g(int p, int q){ return p*q/gcd(q, r);}

编写java程序,求任意两个正整数的最大公约数,跟到这个步骤来

import?java.util.Scanner;

public?class?Test?{

System.out.println("输入两个数:");

Scanner?scan?=?new?Scanner(System.in);

int?a?=?scan.nextInt();

int?b?=?scan.nextInt();

int?m,n,t;

if(ab)?{

m?=?a;

n?=?b;

}?else?{

m?=?b;

n?=?a;

while(m%n?!=?0){

t?=?m%n;

m?=?n;

n?=?t;??

System.out.println("最大公约数为:"+n);

Java编程题:求两个正整数的最大公约数.

这个你用递归的方法啊.

while(a%b!=0)

{

a=Math.max(a%b,b);

b=Math.min(a%b,b);

这个一段代码不对啊.而且显然a%b比b小嘛.何必要max.min呢?你直接赋值肯定不对.要跟上面一样.来个中间值大小换一下.

递归方法如下:

public

static

void

main(String[]

args)

int

a,b,answer;

Scanner

in=new

Scanner(System.in);

a=in.nextInt();

b=in.nextInt();

if(ab)

answer=test(a,b);

}else{

answer=test(b,a);

System.out.println("最大公约数是:"+answer);

private

test(int

a,

b)

//

TODO

Auto-generated

method

stub

if(a%b==0){

return

b;

test(b,a%b);

JAVA 输入两个正整数m,n(用长整数表示),计算最大公约数 要代码

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class gongyueshu {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int a = 0;

System.out.print("请输入m:");

BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));

try {

a=Integer.parseInt(strin.readLine());

} catch (NumberFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

int b = 0;

System.out.print("请输入一个n:");

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, 求其最大公约数和最小公倍数.

用辗转相除法求最大公约数

算法描述:

m对n求余为a, 若a不等于0

则 m - n, n - a, 继续求余

否则 n 为最大公约数

最小公倍数 = 两个数的积 / 最大公约数

#include

int main()

int m, n;

int m_cup, n_cup, res; /*被除数, 除数, 余数*/

printf("Enter two integer:\n");

scanf("%d %d", m, n);

if (m 0 n 0)

m_cup = m;

计算公约数java代码-图3

n_cup = n;

res = m_cup % n_cup;

while (res != 0)

m_cup = n_cup;

n_cup = res;

printf("Lease common multiple : %d\n", m * n / n_cup);

else printf("Error!\n");

return 0;

★ 关于辗转相除法, 搜了一下, 在我国古代的<<九章算术>>中就有记载,现摘录如下:

约分术曰:"可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之."

其中所说的"等数",就是最大公约数.求"等数"的办法是"更相减损"法,实际上就是辗转相除法.

辗转相除法求最大公约数,是一种比较好的方法,比较快.

现在教你用辗转相除法来求最大公约数.

那么,这辗转相除法为什么能得到最大公约数呢?下面我就给大伙谈谈.

反过来,如果一个数d,能同时整除a1b,那么由1)式,也一定能整除r1,从而也有d是b1r1的公约数.

这样,a和b的公约数与b和r1的公约数完全一样,那么这两对的最大公约数也一定相同.那b1r1的最大公约数,在r1=0时,不就是r1吗?所以a和b的最大公约数也是r1了.

在这种方法里,先做除数的,后一步就成了被除数,这就是辗转相除法名字的来历吧.

以上就是土嘎嘎小编为大家整理的计算公约数java代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章