当前位置: 首页 > news >正文

最大公约数和最小公倍数-多语言

目录

C 语言实现

Python 实现

Java 实现

Js 实现


题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

程序分析:

  • 最小公倍数=输入的两个数之积除于它们的最大公约数,关键是求出最大公约数;

  • 求最大公约数用辗转相除法(又名欧几里德算法)

1、证明:设c是a和b的最大公约数,记为c=gcd(a,b),a>=b,
令r = a mod b
设a = kc,b = jc,则k,j互素,否则c不是最大公约数
据上,r = a-mb = kc-mjc = (k-mj)c
可知r也是c的倍数,且k-mj与j互素,否则与前述k,j互素矛盾,
由此可知,b与r的最大公约数也是c,即gcd(a,b) = gcd(b,a mod b),得证。

2、算法描述:

第一步:a ÷ b,令r为所得余数(0≤r 第二步:互换:置 a←b,b←r,并返回第一步。

C 语言实现

#include <stdio.h>int main() {int a, b, t, r;// 提示用户输入两个数字printf("请输入两个数字:\n");scanf("%d %d", &a, &b);// 确保 a 是较大的数字if (a < b) {t = b;b = a;a = t;}// 计算 a 和 b 的乘积int n = a * b;// 使用辗转相除法计算最大公约数r = a % b;while (r != 0) {a = b;b = r;r = a % b;}// 输出结果printf("这两个数的最大公约数是 %d,最小公倍数是 %d\n", b, n / b);return 0; // 返回0表示程序正常结束
}
  1. 头文件:包含标准输入输出库 #include <stdio.h>
  2. 主函数int main() 是程序的入口点。
  3. 输入:使用 scanf 获取用户输入的两个整数 ab
  4. 确保 a 是较大的数字:如果 a 小于 b,则交换它们的值。
  5. 计算乘积:计算 ab 的乘积并存储在 n 中。
  6. 计算最大公约数:使用辗转相除法(欧几里得算法)计算最大公约数。
  7. 输出结果:使用 printf 输出最大公约数和最小公倍数(通过 n / b 计算)。
  8. 返回值return 0; 表示程序正常结束。

这种实现方式清晰易懂,能够正确计算并输出两个数字的最大公约数和最小公倍数。

Python 实现

def main():# 提示用户输入两个数字a, b = map(int, input("请输入两个数字:\n").split())# 确保 a 是较大的数字if a < b:a, b = b, a# 计算 a 和 b 的乘积n = a * b# 使用辗转相除法计算最大公约数r = a % bwhile r != 0:a, b = b, rr = a % b# 输出结果print(f"这两个数的最大公约数是 {b},最小公倍数是 {n // b}")if __name__ == "__main__":main()  # 调用主函数
  • 使用 input() 函数获取用户输入,并使用 map()split() 将输入的字符串转换为两个整数。
  • 通过条件判断确保 a 是较大的数字。
  • 计算两个数字的乘积 n
  • 使用辗转相除法计算最大公约数。
  • 最后输出最大公约数和最小公倍数

Java 实现

import java.util.Scanner;public class GCDAndLCM {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 提示用户输入两个数字System.out.println("请输入两个数字:");int a = scanner.nextInt();int b = scanner.nextInt();// 确保 a 是较大的数字if (a < b) {int t = b;b = a;a = t;}// 计算 a 和 b 的乘积int n = a * b;// 使用辗转相除法计算最大公约数int r = a % b;while (r != 0) {a = b;b = r;r = a % b;}// 输出结果System.out.printf("这两个数的最大公约数是 %d,最小公倍数是 %d\n", b, n / b);scanner.close(); // 关闭扫描器}
}
  1. 使用 Scanner 类获取用户输入。
  2. 提示用户输入两个数字,并将其存储在变量 ab 中。
  3. 通过条件判断确保 a 是较大的数字。
  4. 计算两个数字的乘积 n
  5. 使用辗转相除法计算最大公约数。
  6. 最后输出最大公约数和最小公倍数。
  7. 关闭 Scanner 以释放资源。

Js 实现

function calculateGCDAndLCM() {// 提示用户输入两个数字const a = parseInt(prompt("请输入第一个数字:"));const b = parseInt(prompt("请输入第二个数字:"));// 确保 a 是较大的数字let larger = Math.max(a, b);let smaller = Math.min(a, b);// 计算 a 和 b 的乘积const n = larger * smaller;// 使用辗转相除法计算最大公约数let r = larger % smaller;while (r !== 0) {larger = smaller;smaller = r;r = larger % smaller;}// 输出结果alert(`这两个数的最大公约数是 ${smaller},最小公倍数是 ${n / smaller}`);
}// 调用函数
calculateGCDAndLCM();
  1. 使用 prompt() 函数获取用户输入,并将输入的字符串转换为整数。
  2. 使用 Math.max()Math.min() 确保 larger 是较大的数字,smaller 是较小的数字。
  3. 计算两个数字的乘积 n
  4. 使用辗转相除法计算最大公约数。
  5. 最后使用 alert() 输出最大公约数和最小公倍数。

注意:

  • 该代码在浏览器环境中运行,因为它使用了 prompt()alert() 函数来与用户交互。

相关文章:

最大公约数和最小公倍数-多语言

目录 C 语言实现 Python 实现 Java 实现 Js 实现 题目&#xff1a;输入两个正整数m和n&#xff0c;求其最大公约数和最小公倍数。 程序分析&#xff1a; 最小公倍数输入的两个数之积除于它们的最大公约数&#xff0c;关键是求出最大公约数&#xff1b; 求最大公约数用辗转…...

第三方数据库连接免费使用和安装

是强大的一体化数据库开发解决方案&#xff0c;可从单一应用程序无缝连接多个数据库&#xff0c;包括 MySQL、PostgreSQL、MongoDB、MariaDB、SQL Server、Oracle、SQLite 和 Redis。 下载&#xff1a;https://download.csdn.net/download/mo3408/90045937 升级特性 模型&…...

水库大坝安全监测之量水堰计应用

量水堰计是水库大坝安全监测系统中的一种关键设备&#xff0c;主要用于测量水库水位、流量等水力参数。以下是量水堰计在水库大坝安全监测中的应用及注意事项&#xff1a; 一、量水堰计的工作原理 量水堰计是一种专门用于测量水流流量的仪器&#xff0c;其工作原理主要基于水流…...

算法笔记:滑动窗口

前言 滑动窗口作为一个考点较高的算法&#xff0c;广泛应用于子串问题中&#xff0c;本文将进行详细讲解。 一、滑动窗口是什么 滑动窗口是双指针算法的一种&#xff0c;基本思路为维护一个窗口&#xff0c;然后从前往后遍历元素进行运算。 二、滑动窗口算法和其他双指针算…...

Ubuntu下的Graphviz的基础使用方法

一、Graphviz介绍 graphviz是贝尔实验室开发的一个开源的工具包&#xff0c;它使用一个特定的DSL(领域特定语言):dot作为脚本语言&#xff0c;然后使用布局引擎来解析此脚本&#xff0c;并完成自动布局 1、什么是Graphviz 官网地址&#xff0c;https://www.graphviz.org/ Gr…...

微积分复习笔记 Calculus Volume 1 - 6.8 Exponential Growth and Decay

6.8 Exponential Growth and Decay - Calculus Volume 1 | OpenStax...

React的ts文件中通过createElement拼接一段内容出来

比如接口返回一个值 const values [23.00, 40.00/kg];想做到如下效果&#xff0c; 如果单纯的用render渲染会很简单&#xff0c; 但是在ts文件中处理&#xff0c;所以采用了createElement拼接 代码如下&#xff1a; format: (values: string[]) > {if (!values || !val…...

Pinia之1:介绍Pinia、项目中引入Pinia

欢迎来到“雪碧聊技术”CSDN博客&#xff01; 在这里&#xff0c;您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者&#xff0c;还是具有一定经验的开发者&#xff0c;相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导&#xff0c;我将…...

Python双向链表、循环链表、栈

一、双向链表 1.作用 双向链表也叫双面链表。 对于单向链表而言。只能通过头节点或者第一个节点出发&#xff0c;单向的访问后继节点&#xff0c;每个节点只能记录其后继节点的信息&#xff08;位置&#xff09;&#xff0c;不能向前遍历。 所以引入双向链表&#xff0c;双…...

5G基础学习笔记

功能软件化 刚性网络&#xff1a;固定连接、固定功能、固化信令交互 柔性网络&#xff1a;网元拆解成服务模块&#xff0c;基于API接口调用 服务化架构&#xff08;SBA&#xff09; Service based Architecture &#xff08;SBA&#xff09;: 借鉴了业界成熟的SOA、微服务架…...

Python plotly库介绍

一、引言 在数据可视化领域&#xff0c;Python提供了众多强大的库。其中&#xff0c;plotly是一个功能强大、交互式的可视化库&#xff0c;可以创建各种类型的图表&#xff0c;包括线图、散点图、柱状图、饼图、3D图表等。它不仅提供了美观的可视化效果&#xff0c;还支持交互式…...

go编程中yaml的inline应用

下列代码&#xff0c;设计 Config 和 MyConfig 是为可扩展 Config&#xff0c;同时 Config 作为公共部分可保持变化。采用了匿名的内嵌结构体&#xff0c;但又不希望 yaml 结果多出一层。如果 MyConfig 中的 Config 没有使用“yaml:",inline"”修饰&#xff0c;则读取…...

手机实时提取SIM卡打电话的信令声音-智能拨号器的双SIM卡切换方案

手机实时提取SIM卡打电话的信令声音 --智能拨号器app的双SIM卡切换方案 一、前言 在蓝牙电话的方案中&#xff0c;由于采用市场上的存量手机来做为通讯呼叫的载体&#xff0c;而现在市面上大部分的手机都是“双卡双待单通”手机&#xff0c;简称双卡双待手机。即在手机开机后…...

探索Python WebSocket新境界:picows库揭秘

文章目录 探索Python WebSocket新境界&#xff1a;picows库揭秘第一部分&#xff1a;背景介绍第二部分&#xff1a;picows库概述第三部分&#xff1a;安装picows库第四部分&#xff1a;简单库函数使用方法第五部分&#xff1a;场景应用第六部分&#xff1a;常见Bug及解决方案第…...

2024年11月24日Github流行趋势

项目名称&#xff1a;FreeCAD 项目维护者&#xff1a;wwmayer, yorikvanhavre, berndhahnebach, chennes, WandererFan等项目介绍&#xff1a;FreeCAD是一个免费且开源的多平台3D参数化建模工具。项目star数&#xff1a;20,875项目fork数&#xff1a;4,117 项目名称&#xff1…...

NewStar CTF week5 Crypto wp

easy_ecc ecc的模板题&#xff0c;稍加推理就会发现c1mc2*k因此做一个减法就行&#xff0c;需要注意的点是c1,c2必须放到ecc里面过一道才能出正确结果 k 86388708736702446338970388622357740462258632504448854088010402300997950626097 p 644088904089909773124499208053…...

vue3+antd注册全局v-loading指令

文章目录 1. 创建指令文件2. 全局注册3. 使用 1. 创建指令文件 src/directives 在directives中创建如下文件 src│─directives│ index.ts└─loadingindex.tsindex.vuedirectives/ index.ts export * from ./loadingdirectives/loading/index.ts import { createApp } f…...

初试无监督学习 - K均值聚类算法

文章目录 1. K均值聚类算法概述2. k均值聚类算法演示2.1 准备工作2.2 生成聚类用的样本数据集2.3 初始化KMeans模型对象&#xff0c;并指定类别数量2.4 用样本数据训练模型2.5 用训练好的模型生成预测结果2.6 输出预测结果2.7 可视化预测结果 3. 实战小结 1. K均值聚类算法概述…...

捉虫笔记(七)-再探谁把系统卡住了

捉虫笔记&#xff08;七&#xff09;-再探谁把系统卡住 1、内核调试 在实体物理机上&#xff0c;内核调试的第一个门槛就是如何建立调试链接。 这里我选择的建立网络连接进行内核调试。 至于如何建立网络连接后续文章再和大家分享。 2、如何分析 在上一篇文章中&#xff0c;我们…...

【Linux课程学习】:《简易版shell实现和原理》 《哪些命令可以让子进程执行,哪些命令让shell执行(内键命令)?为什么?》

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 打印命令行提示符&#xff08;PrintCommandLin…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...