c++实现最大公因数和最小公倍数
最大公因数和最小公倍数的介绍
读这篇文章,请你先对最大公因数以及最小公倍数进行了解:
最大公因数(英文名:gcd)
- 定义:最大公因数,也称最大公约数,指两个或多个整数共有约数(因数)中最大的一个。
- 求法
- 列举法:分别列出两个数的所有约数,然后找出它们共有的约数中最大的那个。
- 分解质因数法:
- 辗转相除法:用较大数除以较小数得到商和余数,再用除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公因数。
- 列举法:分别列出两个数的所有约数,然后找出它们共有的约数中最大的那个。
-
最小公倍数(英文名:lcm)
- 几个数共有的倍数叫做这几个数的公倍数,其中除 0 以外最小的一个公倍数,叫做这几个数的最小公倍数。例如,4 的倍数有 4、8、12、16、20、24……,6 的倍数有 6、12、18、24、30……,4 和 6 的公倍数有 12、24……,其中最小的是 12,所以 4 和 6 的最小公倍数是 12,可记作[4,6]:12。
- 求法
- 列举法:分别列出两个数的倍数,然后找出它们共有的倍数中最小的那个。如求 3 和 5 的最小公倍数,3 的倍数有 3、6、9、12、15、18……,5 的倍数有 5、10、15、20……,它们的最小公倍数是 15。
- 分解质因数法:把它们公有的质因数与每个数独有的质因数连乘起来,所得的积就是它们的最小公倍数。例如,12=2×2×3,15=3×5,所以
- 公式法:对于两个数a和b,[a,b]=a*b/(a,b)。例如:
代码:
#include <bits/stdc++.h>
using namespace std;
long long x=0,y=0;
long long pri[100000],cnt=0;
long long gcd(long long a,long long b) {return !b?a:gcd(b,a%b);
}
void gprime(long long num) {cout<<num<<"=";long long divisor=2;bool first=true;while(num>1) {if(num%divisor==0) {if(!first) {cout<<"*";}cout<<divisor;num/=divisor;first=false;} else {divisor++;}}cout<<endl;
}
vector<long long>commonFactors(long long a,long long b) {vector<long long>factors;for(long long i=1; i<=min(a,b); i++) {if(a%i==0&&b%i==0) {factors.push_back(i);}}return factors;
}
long long poww(long long x) {long long f1=x,cnt=0;while(f1) {f1/=10;cnt++;}return cnt;
}
bool Is_Prime(long long x) {for(long long i=2; i<x; i++) {if(x%i==0) {return 0;}}return 1;
}
void Print(long long a,long long b) {cout<<"分解质因数过程:"<<endl;gprime(a);gprime(b);vector<long long>factors=commonFactors(a,b);cout<<a<<"和"<<b<<"的公因数有:";for(long long factor:factors) {cout<<factor<<" ";}cout<<"\n";if(gcd(a,b)==1) {cout<<"互质,没有过程。\n";} else {cout<<"输出短除法过程\n";long long k=poww(a)+poww(b)+5,back;long long fa=a,fb=b;while(gcd(fa,fb)!=1) {for(long long i=2;; i++) {if(Is_Prime(i)&&fa%i==0&&fb%i==0) {cnt++;pri[cnt]=i;cout<<i<<" | "<<fa<<" "<<fb<<"\n";for(long long j=1; j<=poww(i)+1; j++) {cout<<" ";}for(long long j=1; j<=k; j++) {cout<<"-";}fa/=i;fb/=i;cout<<"\n";if(gcd(fa,fb)==1) {back=i;x=fa;y=fb;}break;}}}for(long long i=1; i<=poww(back)+3; i++) {cout<<" ";}cout<<fa<<" "<<fb<<"\n";}if(gcd(a,b)==1) {cout<<"("<<a<<","<<b<<"):"<<gcd(a,b)<<"\n";cout<<"["<<a<<","<<b<<"]:";if(gcd(a,b)==1) {cout<<a<<"*"<<b<<"\n";for(long long i=1; i<=poww(a)+poww(b)+3; i++) {cout<<" ";}cout<<"=";}cout<<a*b/gcd(a,b);return ;}cout<<"("<<a<<","<<b<<"):";long long anss=1;for(long long i=1; i<=cnt; i++) {anss*=pri[i];cout<<pri[i];if(i!=cnt) {cout<<"*";}}cout<<"\n";for(long long i=1; i<=poww(a)+poww(b)+3; i++) {cout<<" ";}cout<<"="<<anss;cout<<"\n["<<a<<","<<b<<"]:";for(long long i=1; i<=cnt; i++) {cout<<pri[i]<<"*";}cout<<x<<"*"<<y<<"\n";for(long long i=1; i<=poww(a)+poww(b)+3; i++) {cout<<" ";}cout<<"="<<anss<<"*"<<x*y<<"\n";for(long long i=1; i<=poww(a)+poww(b)+3; i++) {cout<<" ";}cout<<"="<<gcd(a,b)<<"\n";cout<<"("<<a<<","<<b<<"):"<<gcd(a,b)<<"\n";cout<<"["<<a<<","<<b<<"]:";if(gcd(a,b)==1) {cout<<a<<"*"<<b<<"\n";for(long long i=1; i<=poww(a)+poww(b)+3; i++) {cout<<" ";}cout<<"=";}cout<<a*b/gcd(a,b);
}
int main() {cout<<"输入两个整数:\n";cout<<"本程序用于计算两个数的gcd(最大公因数、最大公约数)以及lcm,其中,(a,b)表示两个数的gcd,[a,b]表示两个数的lcm\n";long long a,b;cin>>a>>b;system("cls");if(gcd(a,b)==1) {cout<<"检测到互质,将自动省略过程\n";Print(a,b);return 0;}if(gcd(a,b)==min(a,b)){cout<<"检测到有倍数关系,这里推荐使用不要过程,请慎重选择\n";}cout<<"输入模式:\n";cout<<"0.只要答案\n";cout<<"其他任何数.要过程\n";long long sr;if(!sr&&gcd(a,b)==min(a,b)){cout<<"("<<a<<","<<b<<"):"<<min(a,b)<<"\n";cout<<"["<<a<<","<<b<<"]:"<<max(a,b)<<"\n";return 0;}cin>>sr;system("cls");if(!sr) {cout<<"("<<a<<","<<b<<"):"<<gcd(a,b)<<"\n";cout<<"["<<a<<","<<b<<"]:";if(gcd(a,b)==1) {cout<<a<<"*"<<b<<"\n";for(long long i=1; i<=poww(a)+poww(b)+3; i++) {cout<<" ";}cout<<"=";}cout<<a*b/gcd(a,b);return 0;}Print(a,b);return 0;
}
相关文章:

c++实现最大公因数和最小公倍数
最大公因数和最小公倍数的介绍 读这篇文章,请你先对最大公因数以及最小公倍数进行了解: 最大公因数(英文名:gcd) 定义:最大公因数,也称最大公约数,指两个或多个整数共有约数&…...

知识库Dify和cherry无法解析影印pdf word解决方案
近期收到大量读者反馈:上传pdf/图文PDF到Dify、Cherry Studio等知识库时,普遍存在格式错乱、图片丢失、表格失效三大痛点。 在试用的几款知识库中除了ragflow具备图片解析的能力外,其他的都只能解析文本。 如果想要解析扫描件,…...

【记录一下学习】Embedding 与向量数据库
一、向量数据库 向量数据库(Vector Database),也叫矢量数据库,主要用来存储和处理向量数据。 在数学中,向量是有大小和方向的量,可以使用带箭头的线段表示,箭头指向即为向量的方向,…...

【第21节】C++设计模式(行为模式)-Chain of Responsibility(责任链)模式
一、问题背景 在 VC/MFC 开发中,消息处理机制是核心部分之一。VC 是基于消息和事件驱动的框架,消息的处理流程通常是通过链式传递的方式进行的。例如,一个 WM_COMMAND 消息的处理流程可能如下: (1)MDI 主窗…...
createrepo centos通过nginx搭建本地源
yum update 先安装一个nginx。 安装Nginx yum install gcc gcc-c pcre pcre-devel openssl openssl-devel libtool zlib zlib-devel -y cd /usr/local/src wget http://nginx.org/download/nginx-1.22.0.tar.gz tar -zxvf nginx-1.22.0.tar.gz cd nginx-1.22.0 ./configu…...
在 Docker 中搭建GBase 8s主备集群环境
本文介绍了如何在同一台机器上使用 Docker 容器搭建GBase 8s主备集群环境。 拉取镜像 拉取GBase 8s的最新镜像 docker pull liaosnet/gbase8s或者docker pull liaosnet/gbase8s:v8.8_3513x25_csdk_x64注:在tag为v8.8_3513x25_csdk_x64及之后的版本中,…...

【MySQL-数据类型】数据类型分类+数值类型+文本、二进制类型+String类型
一、数据类型分类 二、数值类型 1.bit类型 测试环境ubuntu 基本语法: bit[(M)]:位字段类型,M表示每个值的位数,范围从1~64;如果M被忽略,默认为1举例: create table testBit(id i…...

小谈java内存马
基础知识 (代码功底不好,就找ai优化了一下) Java内存马是一种利用Java虚拟机(JVM)动态特性(如类加载机制、反射技术等)在内存中注入恶意代码的攻击手段。它不需要在磁盘上写入文件,…...

简单的二元语言模型bigram实现
内容总结归纳自视频:【珍藏】从头开始用代码构建GPT - 大神Andrej Karpathy 的“神经网络从Zero到Hero 系列”之七_哔哩哔哩_bilibili 项目:https://github.com/karpathy/ng-video-lecture Bigram模型是基于当前Token预测下一个Token的模型。例如&#x…...

【清华大学】实用DeepSeek赋能家庭教育 56页PDF文档完整版
清华大学-56页:实用DeepSeek赋能家庭教育.pdf https://pan.baidu.com/s/1BUweVDeG2M8-t0QaIs3LHQ?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/8a9473493bb0 《实用DeepSeek赋能家庭教育》基于清华大学研究成果,系统阐述了DeepSeek人工智能技…...

黑洞如何阻止光子逃逸
虽然涉及广义相对论,但广义相对论说的是大质量物体对周围空间的影响,而不是说周围空间和空间中的光子之间的关系。也就是说,若讨论光子逃逸问题,则不必限定于大质量的前提,也就是说,若质量周围被扭曲的空间…...

1.4 单元测试与热部署
本次实战实现Spring Boot的单元测试与热部署功能。单元测试方面,通过JUnit和Mockito等工具,结合SpringBootTest注解,可以模拟真实环境对应用组件进行独立测试,验证逻辑正确性,提升代码质量。具体演示了HelloWorld01和H…...
window系统中的start命令详解
start 是 Windows 系统中用于启动新进程或打开新窗口来运行指定程序或命令的命令。以下是对 start 命令参数的详细解释: 基本语法 start ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENO…...

AI编程工具节选
1、文心快码 百度基于文心大模型推出的一款智能编码助手, 官网地址:文心快码(Baidu Comate)更懂你的智能代码助手 2、通义灵码 阿里云出品的一款基于通义大模型的智能编码辅助工具, 官网地址:通义灵码_你的智能编码助手-阿里云 …...

正则表达式,idea,插件anyrule
package lx;import java.util.regex.Pattern;public class lxx {public static void main(String[] args) {//正则表达式//写一个电话号码的正则表达式String regex "1[3-9]\\d{9}";//第一个数字是1,第二个数字是3-9,后面跟着9个数字…...

原生iOS集成react-native (react-native 0.65+)
由于官方文档比较老,很多配置都不能用,集成的时候遇到很多坑,简单的整理一下 时间节点:2021年9月1日 本文主要提供一些配置信息以及错误信息解决方案,具体步骤可以参照官方文档 原版文档:https://reactnative.dev/docs…...

java错题总结
本篇文章用来记录学习javaSE以来的错题 解答:重载要求俩个方法的名字相同,但参数的类型或者个数不同,但是不要求返回类型相同,所以A正确。 重写还需要要求返回类型相同(呈现父子类关系也可以,但是属于特例&…...
【商城实战(10)】解锁商品信息录入与展示的技术密码
【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配…...

2025年主流原型工具测评:墨刀、Axure、Figma、Sketch
2025年主流原型工具测评:墨刀、Axure、Figma、Sketch 要说2025年国内产品经理使用的主流原型设计工具,当然是墨刀、Axure、Figma和Sketch了,但是很多刚入行的产品经理不了解自己适合哪些工具,本文将从核心优势、局限短板、协作能…...
MDM 如何彻底改变医疗设备的远程管理
在现代医疗行业迅速发展的格局中,医院和诊所越来越依赖诸如医疗平板和移动工作站等移动设备。这些设备在提高工作效率和提供卓越的患者护理方面发挥着关键作用。然而,随着它们的广泛使用,也带来了一系列挑战,例如在不同地点确保数…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...