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

2023-11-11

解题思路:
1.求最大公约数用辗转相除法。将较大的那个数对较小的那个数取余(如果a>=b,那就a%b),取余得出的结果为下次运算的除数,上面较小的那个数将作为被除数
直到运算到较小为0时,返回较大的数,这个数就是最大公约数。
2.最小公倍数就是 原来的两个正整数的积除以最大公约数

具体代码如下:

/*方法一:*/
package Main;

import java.util.Scanner;

public class Solution {
public static void main(String[] args) { 
    System.out.println("请输入两个整数:"); 
     Scanner input1 =new Scanner(System.in);
     int a = input1.nextInt(); 
     int b =input1.nextInt(); 
     int u= a*b; //  用u来保存 a*b 的值
     while(b>0) { 
     if(a>=b&&a%b!=0){ 
         int t = b;
         b = a%b; // 利用了递归算法
         a = t; 
     }else if(a%b==0){
         break; // a刚好是b的倍数 
     }else{ 
         int s = a; // 当  a < b 时 ,a b的值交换
         a = b;
         b = s; 
        }
     } 

     System.out.println("两个数的最大公约数为:"+b);
     System.out.println("两个数的最小公倍数为:"+u/b);
 }
     }

 /*方法二,欧几里德算法(辗转相除法)*/
 package Main;

import java.util.Scanner;

public class Solution {
     int divisor(int m,int n)//递归方法
     {
         if (m % n == 0) {
             return n;
         }
         else {
             return divisor(n,m % n);
         }
     }
public static void main(String[] args) { 
    System.out.println("请输入两个整数:"); 
     Scanner input1 =new Scanner(System.in);
     int a = input1.nextInt(); 
     int b =input1.nextInt(); 
     int u= a*b; //  用u来保存 a*b 的值
     Solution s = new Solution();
     int result;
     result = s.divisor(a, b);
     System.out.println("两个数的最大公约数为:"+result);
     System.out.println("两个数的最小公倍数为:"+u/result);
 }
     }

欧几里德算法介绍:
https://baike.baidu.com/item/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%B7%E7%AE%97%E6%B3%95?fr=aladdin

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java求两个数的最大公约数和最小公倍数 的相关文章

  • Oracle insert all 详解

    文章目录 1 概述 2 insert 的两种形式 2 1 insert first 2 2 insert all 3 数据一致性 同时插入 3 1 验证 insert into 数据不一致 3 2 验证 insert all 数据一致 1
  • Clang Static Analyzer 系列(一)编译 Clang 及运行 Checker

    编译 Clang CSA Clang Static Analyzer 是 clang 的一部分 建议使用自行编译的 clang 源码在 llvm llvm project github com 上获取 编译 clang 前首先要生成 cla
  • [CCPC 2019] 厦门

    Description Recently Zayin became obsessed with a tower defense game called Arknights The most special level is the 5th
  • Spring Cloud Alibaba+saas企业架构技术选型+架构全景业务图 + 架构典型部署方案

    基于Spring Cloud Alibaba 分布式微服务高并发数据平台化 中台 思想 多租户saas设计的企业开发架构 支持源码二次开发 支持其他业务系统集成 集中式应用权限管理 支持拓展其他任意子项目 一 架构技术选型 核心框架 Spr
  • SpringBoot不自动加载Shiro配置 (No bean of type 'org.apache.shiro.realm.Realm' found)

    在很多SpringBoot项目中 common或者parent 做了shiro依赖 这样其他模块项目 总是提示 No bean of type org apache shiro realm Realm found Action Please
  • Docker Windows 版本拉取镜像错误 no matching manifest

    windows 10 x64安装版本需要开启Hyper V Docker镜像拉取错误码 C Users Administrator gt docker pull mysql 5 7 5 7 Pulling from library mysq
  • 如何友好提示vue3.0不再支持IE11及以下的浏览器版本

    原因 2021年4 月 3 日 Vue 作者尤雨溪宣布 Vue 3 将不会支持 IE11 之所以不支持 IE 11 主要原因还是因为 IE 已逐渐边缘化 据 StatCounter 数据显示 在全球市场中 IE 的市场份额只有 0 73 写
  • Java连接数据库的方法

    一 前期准备工作 1 在IDEA中新建一个项目 方式一 然后一路点击 next 最后执行以下步骤 方式二 同样也是一路 next 然后进行以下步骤 2 在所建的项目中建一个 lib 文件 方式 选中 项目 右击新建 lib 3 将相关的驱动
  • WebService代码

    http git oschina net huangyong cxf demo
  • Python打包命令

    创建虚拟环境 conda create n auto python 3 8 激活虚拟环境 conda activate conda activate auto 查看已经创建的虚拟环境列表 conda info envs 查看已经安装的依赖库
  • python实现字符串去重

    题目 输入一串数据 删除重复的数据 注意 读取字符串的顺序为从右往左 如果结果是以0结束 则删除0 如果结果有负号 需要保留 去重思路 对于不含符号的字符串 2343 gt 转化绑定 index value 的元组列表 0 2 1 3 2
  • [网络通信] 什么是零拷贝?

    什么是零拷贝 文章目录 什么是零拷贝 1 Java 实现应用缓存零拷贝 2 底层零拷贝实现机制 2 1 mmap 2 2 sendfile 2 3 splice 小结 REFERENCES 我们在写一个服务端程序时 Web Server或者

随机推荐

  • 从键盘输入n名学生数据,转存到磁盘文件,然后回显

    最近一个同学要我跟她写这个程序 我自己写的不咋地 权当看看得了 include
  • 【计算机视觉

    文章目录 一 检测相关 18篇 1 1 LaRS A Diverse Panoptic Maritime Obstacle Detection Dataset and Benchmark 1 2 Far3D Expanding the Ho
  • C++中使用初始化列表出现原因

    1 必须这样做 如果我们有一个类成员 它本身是一个类或者是一个结构 而且这个成员它只有一个带参数的构造函数 而没有默认构造函数 这时要对这个类成员进行初始化 就必须调用这个类成员的带参数的构造函数 如果没有初始化列表 那么他将无法完成第一步
  • 暑假数论专题

    Prime Distance 给定两个整数 L R 求闭区间 L R 中相邻两个质数差值最小的数对与差值最大的数对 当存在多个时 输出靠前的素数对 多组数据 每行两个数 L R Input Output 2 17 14 17 2 3 are
  • Java用ssm开发家教系统家教网站家教兼职系统功能很齐全

    简介 用户可以注册成为学员也可以是教员 教员发布家教信息 学员根据自己的要求查找符合自己的教员 学员预约教员的某一天去家教 教员可以在个人中心里查看 是否接受该预约 在教员接受或拒绝之前 学员随时可以取消该预约 若教员不处理改预约 则该预约
  • Android开发入门教程

    当涉及到 Android 开发入门教程时 以下是一个详细的大纲 包含了一些常见的实践和指导 1 Android 概述 介绍 Android 平台的基本概念和特点 解释 Android 应用的组成和架构 说明 Android 应用的开发环境和
  • 文献管理工具之 Jabref vs Zotero 与 Zotero 使用 markdown

    本文章为自创文章 未获允许请勿随意转载 转载请带上出处 谢谢合作 本文链接 https blog csdn net qq 48019718 article details 114642743 0 前言 最近闲来无事 等信息 ing 就在做毕
  • 时间推送练习

    1 同一个数轴X上有两个点的集合A A1 A2 Am 和B B1 B2 Bn Ai和Bj均为正整数 A B已经按照从小到大排好序 A B均不为空 给定一个距离R 正整数 列出同时满足如下条件的所有 Ai Bj 数对 Ai lt Bj Ai
  • 优越数

    include
  • linux外接光驱下载文件,Linux 从光驱拷贝文件以及加载新的硬盘

    加载光驱 1 将ISO文件放到光盘中 点击确定 2 连接光驱 如果是虚拟机 菜单VM gtsetting gtHardware gt选CD DVD gtConnection 3 将光驱加载到一个目录下 要先mount root lvs dr
  • SDN初创公司Big Switch获得Intel的650万美元融资,挑战思科的网络技术霸权

    原文地址 http www 36kr com p 201289 html SDN 软件定义网络 公司Big Switch Networks今天从 Intel Capital 手中拿到一笔 650 万美元的融资 这笔融资让 Big Switc
  • 换了个数据结构,一不小心把系统性能提升了10倍以上

    很多Java开发同学经常有一个疑惑 搞Java开发也需要懂算法吗 本文咱们就来谈谈这个问题 其实如果你开发一个非常复杂而且有挑战的大型系统 那么必然会在系统中使用算法 同理 如果你可以将算法进行合理的优化 那么也可以将系统性能提升几十倍 空
  • 生成新的数据列:使用R语言进行数据处理

    生成新的数据列 使用R语言进行数据处理 在数据分析和统计建模中 我们经常需要对现有数据进行处理和转换 以生成新的数据列来满足分析需求 R语言是一种功能强大的数据分析和统计建模工具 提供了各种函数和技术来处理数据 本文将介绍如何使用R语言生成
  • BSD协议和FreeBSD

    BSD协议 开放分类 BSD 协议 开源 BSD是 Berkely Software Distribution 的缩写 意思是 伯克利软件发行版 显然 BSD这个名称并不是我们现在所理解的操作系统 而且其原意也并非简单的操作系 统 而是一整
  • 通过smtplib和email发送验证码到电子邮箱(Python3.7.X)

    使用前需要在发送方的邮箱里开启POP3 SMTP服务 这里以QQ邮箱为例 设置 账户 开启服务 获得授权码 以下案例模拟发送一串纯文本的6位数字验证码 比较简单易懂 可在此基础上再完善 效果演示 代码展示 coding utf 8 impo
  • JSON.stringify 语法实例讲解

    语法 JSON stringify value replacer space value 是必选字段 就是你输入的对象 比如数组 类等 replacer 这个是可选的 它又分为2种方式 一种是数组 第二种是方法 情况一 replacer为数
  • 给打包文件的加上时间或者版本号

    const Version new Date getTime output path config build assetsRoot publicPath http www baidu com 修改 https iv admin 这部分为你
  • python运行代码不显示warning输出

    两种方法可以在python运行代码的时候不显示warning输出 方法1 import warnings warnings filterwarnings ignore 方法2 python W ignore run py
  • CGAL 快速构建三维凸包

    目录 一 三维凸包 二 代码实现 三 结果展示 四 结论 一 三维凸包 和二维凸包类似 给定一堆三维空间中的点 包含它们的最小凸多面体称为这些点的凸包 二 代码实现 include
  • java求两个数的最大公约数和最小公倍数

    解题思路 1 求最大公约数用辗转相除法 将较大的那个数对较小的那个数取余 如果a gt b 那就a b 取余得出的结果为下次运算的除数 上面较小的那个数将作为被除数 直到运算到较小为0时 返回较大的数 这个数就是最大公约数 2 最小公倍数就