用Java实现 求取两数的最大公约数

Java实现埃拉托色尼筛选法 1 问题描述 Compute the Greatest Common Divisor of Two Integers using Sieve of Eratosthenes. 翻译:使用埃拉托色尼筛选法计算两个整数的最大公约数。(PS:最大公约数也称最大公因数,指两个或多个整数共有约数中最大的一个) 2 解决方案 2.1 埃拉托色尼筛选法原理简介 引用自百度百科: 埃拉托色尼筛选法(the Sie... 阅读详情

求取两数的最大公约数

1. 递归实现

public class test1 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入两个数:");
        int a=scanner.nextInt();
        int b=scanner.nextInt();
        int count=1;
        function(a,b,count);//调用函数
        System.out.println("最大公约数为:"+num);
    }
    static int num=0;//用于存储最大公约数
    public static void function(int a, int b, int count){
        if (a%count==0&&b%count==0) {
            num=count;
        }
        count++;
        //无论a比b大还是小,执行次数至少要达到其中一个,因为最大公约数可能是其本身
        if(count<=a||count<=b){
            function(a,b,count);
        }
    }
}

2. 非递归实现

public class test1 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("输入两个数:");
        int a=scanner.nextInt();
        int b=scanner.nextInt();
        int count=0;  //用于存储公约数

//无论a比b大还是小,执行次数至少要达到其中一个,因为最大公约数可能是其本身
        for (int i=1;i<=a;i++){
            if (a%i==0&&b%i==0) {
                count = i;
            }
        }
        System.out.println("最大公约数为:"+count);
    }
}
java实现三种方式求最大公约数 /** * 欧几里得算法:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。 */ private static int gcdV1(int a,int b){ int big = a > b ? a : b; int small = a < b ? a : b; ... 阅读详情

相关推荐

从立创商城到Cadence:手把手教你实现封装格式的精准迁移

本文详细介绍了如何从立创商城获取元器件封装并精准迁移至Cadence Allegro的全流程。通过实战案例MAX31865ATP+T芯片,逐步解析Altium Designer格式转换、Cadence环境配置、封装导入验证等关键步骤,提供常见问题解决方案和效率提升技巧,帮助硬件工程师实现封装格式的高效迁移。

weixin_42519985的博客 172

java 求两个整数的最大公约数和最小公倍数

求两个整数的最大公约数用辗转相除法比较简单。 算法思想:找出两个数中较大的数,然后用较小的数除较大的数, 如果余数不为0,则用余数去除上一步计算的除数,知道余数为0,这时除数就是最大公约数。 这个算法比较简单明了,用JAVA实现如下: private static int maxGongYuShu(int a,int b){ if(a>b){

海纳百川,壁立千仞 2709

Java实现递归形式的最大公约数算法

最大公约数(Greatest Common Divisor,简称GCD)是数学中一个重要的概念,指的是能够同时整除两个或多个数的最大正整数。在计算机科学中,求解两个数的最大公约数是一个常见的问题,在此我们将使用Java语言来实现一个递归形式的最大公约数算法。欧几里得算法通过反复应用辗转相除法,将两个数的求最大公约数的问题转化为更小规模的子问题,直到其中一个数为0时终止。总结起来,递归形式的最大公约数算法是一种简洁而高效的求解最大公约数的方法。可以看到,程序成功地计算出了72和48的最大公约数,即24。

ByteSparkX的博客 340

java实现最大公约数

java实现最大公约数:任意输入两个整数,如何求他们的最大公约数

weixin_61876893的博客 7176

java求两个整数的最大公约数(辗转相除法)以及最小公倍数

最大公约数:辗转相除法 辗转相除法又叫欧几里得算法,是欧几里得最先提出来的.辗转相除法的实现,是基于下面的原理: 不妨设 (a,b)表示 a 和 b 的最大公约数 则 (a, b) = (a, ka+b),其中a、b、k都为自然数.………………① 也就是说,两个数的最大公约数,将其中一个数加另一个数,得到的新数,其公约数不变。 比如(4,6)=(4+6,6)=(4,6+2×4)=2 ...

qq_28632639的博客 2300

Java解决最大公约数问题、枚举法、辗转相除递归

最大公约数递归法、递推法、暴力穷举、暴力枚举、辗转相除、《九章算术》

GRT609的博客 2001

求两个正整数的最大公约数

import java.util.Scanner; public class MaxcdPractice{ public static int fun (int a,int b){ int tmp =0; //保存余数 while (a%b!=0){ tmp = a%b; a=b; b=tmp; } return b; } public static voi...

小阿敏的博客 201

航电ACM [hdu 2028] Lowest Common Multiple Plus

Problem Description 求n个数的最小公倍数。 分析:两个数的最小公倍数 lcm( x , y ) = x * y / gcd( x , y )。其中 gcd() 是这两个数的最大公约数,可以采用“辗转相除法”求解。所以这题的关键是求最大公约数

不忘初心 方得始终 806

java求取最大公约数

java求取最大公约数 概念 在写代码之前我们要了解一些基本概念 如果数a能被数b整除,a就叫做b的倍数,b就叫做a的约数。 几个整数,公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。 a%b=0 (b>0),a的最大公约数为b,当b=0时,最大公约数为a 算法思路 当b不等于0时,a除以b取余数,a等于b与余数相除,直到余数等于0,结束 while(b!=0) { int temp=a%b; //取余 a =b; b=temp;

weixin_45311659的博客 2408

Java实现最大公约数计算。从键盘接收两个整数,编写程序求出这两个整数的最大公约数和最小公倍数(提示:求最大公约数可用辗转相除法,求最小公倍数则用两数的积除以最大公约数即可)。

最大公约数计算 从键盘接收两个整数,编写程序求出这两个整数的最大公约数和最小公倍数(提示:求最大公约数可用辗转相除法,求最小公倍数则用两数的积除以最大公约数即可)。 实现代码如下: import java.util.Scanner; public class test03 { public static void main(String[] args) { System.o...

HeiSQ的博客 1万+

java编程实现两数最大公约数及最小公倍数

题目 输入两个正整数m和n,求其最大公约数和最小公倍数。两个或两个以上数的几个公约数中最大的一个公约数。两个或多个整数的公倍数里最小的那一个叫做它们的最小公倍数。 思路分析 最大公约数解法:在循环中,只要除数不等于0,用较大数除以较小的数,将较小的一个数作为下一轮循环的大数,取得的余数作为下一轮循环的较小的数,如此循环直到较小的数的值为0,返回较大的数,此数即为最小公约数,最小公倍数为两数之积除以最大公约数。 代码实现 package com.cao.lixi; import java.util.Scan

weixin_45115654的博客 2221

两数最大公约数你会求吗?(内附完整java、python代码)

两个数的最大公约数怎么求? 思考题目的同时,我在这也顺便发出三个灵魂疑问? 什么又是更相减损法? 什么又是辗转相除法? 什么又是欧几里得算法? 不懂没关系,往下看 要解决两数最大公约数问题?,你首先要知道什么是两数的公约数 解释: 最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。 如果数a能被数b整除,a就叫做b的倍数,b就叫做a的约数。约数和倍数都表示...

qiukui111的博客 514

两数最大公约数和最小公倍数(java实现

题目:   输入2个正整数m,n,求其最大公约数和最小公倍数。 思路: 方法一:辗转相除 方法二:暴力计算   比较输入的两个数m和n谁更小,从较小者开始往下寻找第一个能被m和n同时整除的数,该数即为最大公约数。 由数学定理可知,最小公倍数 = 两数乘积 / 最大公约数 实现: public class Divisor { public static v...

谬也的博客 957

Java最大公约数(6种解法总结)

【代码】Java最大公约数(6种解法总结)

WengJM的博客 1万+

java求两个数的最大公约数(三种方法)

java求两个数的最大公约数(三种方法) 1.遍历法 之前我也不知道,上网查了一下,0和任何非零的数的约数都是这个非零的数(太菜了,小学数学都不知道) import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner input = new...

weixin_44221079的博客 2万+

java求两个整数的最大公约数和最小公倍数

公约数只有1的两个数int temp;//这里我们使用辗转相除法来求两个数的最大公因数while(num1!=0&&num2!=0) {//如果求余为0,循环就结束,结果就是num2//求最小公倍数以两个数的乘积为for循环的终止条件//分别对num1和num2求余。求余等于零的i就是最小公倍数i++) {return i;int temp;//这里我们使用辗转相除法来求两个数的最大公因数while(num1!=0&&num2!=0) {

qq_45706736的博客 1677

java实现求两个正整数的最大公约数

我们知道最大公约数的概念:指两个或多个整数共有约数中最大的一个。 这里我们可以用辗转相除法来解决 具体代码如下 public class Connum { public static void main(String[] args) { int a=10; int b=29; int c=0; while(ture){ ...

question_mark的博客 4190

Java--求两个整数的最大公约数和最小公倍数

求两个整数发最大公约数和最小公倍数,是小学的时候觉得还算是比较难的一个题目,今天我用Java来求出。

swy2560666141的博客 2918

java 中的最大公约数(常用!!!)

最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。

qq_52175949的博客 1721

【JTAG】1149.6协议详解

JTAG1149.6协议是1149.1协议中Boundary-Scan结构的扩展,1149.1对交流耦合、差分或两者兼有的情况并没有得到充分的处理。该协议支持新的I/O测试结构。需要时变(AC)信号的高级I/O引脚允许测试它们之间的连接,这包括所有差分信号引脚或单端信号引脚,通过设计支持交流耦合。..................

xuhe0206的博客 4478

基于光敏电阻的路灯控制电路proteus仿真图及软件程序源码.zip

基于光敏电阻的路灯控制电路proteus仿真图及软件程序源码,可供学习及设计参考。

上一篇: JDBC连接
下一篇: Java解决 百鸡问题
梓丶墨
博客等级 码龄6年 1粉丝 28原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值