辗转相除法 求最大公约数

简介: 辗转相除法 求最大公约数

最大公约数:同时可以整除a和b(a和b不能全为零!)的公因数里最大的那个,可记作:gcd(a,b)

辗转相除法:对于给定的两个数,用较大的数除以较小的数。若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则这时较小的数就是原来两个数的最大公约数。

根据欧几里得的辗转相除法,gcd(a,b)有如下性质:

1.gcd(a,b)= gcd(b,a)

2.gcd(a,b)=gcd(-a,b)

3.gcd(a,0)=|a|

4.gcd(a,b)=gcd(b,a%b),(0<=a%,b<b)

public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个数:");
        long  a=scanner.nextLong();
        System.out.print("请再输入一个数:");
        long  b=scanner.nextLong();
        System.out.print("gcd("+a+","+b+")=");
        long k;
//        不用讨论a b 大小
//        因为 一个小的数对大的数取余得的是小数本身,
//        通过a=b,b=k 可以达到大小数互换从而继续取余
        do {
            k=a%b;
            a=b;
            b=k;
        }while (k!=0);
        System.out.println(a);
    }
相关文章
|
分布式计算 监控 搜索推荐
Elasticsearch之SearchScroll原理剖析和优化
Elasticsearch是一款优秀的开源企业级搜索引擎,其查询接口主要为Search接口,提供了丰富的各类查询、排序、统计聚合等功能。本文将要介绍的是另一个查询接口SearchScroll,同时介绍一下我们在这方面做的一些性能和稳定性等方面的优化工作。   Elasticsearch的SearchScroll接口可用于从索引中检索大量数据,或者是所有的数据,值得注意的是Elasti
5554 0
Elasticsearch之SearchScroll原理剖析和优化
|
Go
int64转换time【golang】
int64转换time【golang】
312 1
|
前端开发 JavaScript 算法
使用 JavaScript 数组方法实现排序与去重
【10月更文挑战第21天】通过灵活运用 `sort()` 方法和 `filter()` 方法,我们可以方便地实现数组的排序和去重。同时,深入理解排序和去重的原理,以及根据实际需求进行适当的优化,能够更好地应对不同的情况。可以通过实际的项目实践来进一步掌握这些技巧,并探索更多的应用可能性。
410 59
|
运维 监控 Cloud Native
设计与构建 FinOps 流程、团队、体系与目标
企业 FinOps 实施不是一蹴而就的项目,如果您正在推进企业云原生 FinOps 落地,除了选择合适的技术手段,企业内部的流程和体系建设也尤为重要。
164638 101
|
Arthas Java 测试技术
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
Java字节码文件、组成、详解、分析;常用工具,jclasslib插件、阿里arthas工具;如何定位线上问题;Java注解
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
|
前端开发 Java easyexcel
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
820 6
|
人工智能 算法 数据可视化
智慧停车场车位引导及反向寻车解决方案
智慧停车场导航系统结合了先进的室内定位技术和导航算法,旨在解决大型公共场所停车难、找车难等问题。系统不仅提供精准的停车引导、反向寻车及停车场内导航服务,还通过大数据分析优化停车场管理和用户体验,是提升现代城市智能化水平的重要组成部分。
1552 0
|
监控 数据挖掘 Linux
Linux服务器PBS任务队列作业提交脚本的使用方法
【8月更文挑战第21天】在Linux服务器环境中,PBS任务队列能高效管理及调度计算任务。首先需理解基本概念:作业是在服务器上执行的任务;队列则是等待执行任务的列表,具有不同的资源限制与优先级;节点指分配给作业的计算资源。
2341 4
|
数据采集 NoSQL API
自建使用隧道代理全教程,太难?阿布云快代理小象代理的隧道代理用谁的?
在信息技术飞速发展的今天,通过部署隧道代理可增强网络通讯的安全性,并简化数据采集过程中的代理IP使用。本文将介绍如何部署隧道代理,包括选择付费代理IP、安装必要的库(如 requests)、搭建隧道并使用 Redis 管理代理IP,以及使用 OpenResty 实现代理IP的自动转发。此外,还推荐了青果网络提供的隧道代理服务及其优势。