首页 > 其他分享 >简单题集锦

简单题集锦

时间:2024-09-05 15:24:54浏览次数:5  
标签:gcd mc int kn xd 最大公约数 集锦 简单

HJ108 求最小公倍数

题目:https://www.nowcoder.com/practice/22948c2cad484e0291350abad86136c3?tpId=37&tqId=21331&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=

复习一下辗转相除法:

原理证明

设两数为a、b(a>b),用gcd(a,b)表示a,b的最大公约数,r=a (mod b) 为a除以b的余数,k为a除以b的商,即a÷b=kr。辗转相除法即是要证明gcd(a,b)=gcd(b,r)。

第一步:令c=gcd(a,b),则设a=mc,b=nc

第二步:根据前提可知r =a-kb=mc-knc=(m-kn)c

第三步:根据第二步结果可知c也是r的因数

第四步:可以断定m-kn与n互质(假设m-kn=xd,n=yd (d>1),则m=kn+xd=kyd+xd=(ky+x)d,则a=mc=(ky+x)cd,b=nc=ycd,则a与b的一个公约数cd>c,故c非a与b的最大公约数,与前面结论矛盾),因此c也是b与r的最大公约数。

从而可知gcd(b,r)=c,继而gcd(a,b)=gcd(b,r)。

证毕。

以上步骤的操作是建立在刚开始时r≠0的基础之上的。即m与n亦互质。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int a,b;
 4 int gcd(int a,int b){
 5     if(b) return gcd(b,a%b);
 6     else return a;
 7 }
 8 int main(){
 9     cin>>a>>b;
10     cout<<a*b/gcd(a,b);
11     return 0;
12 }

 

标签:gcd,mc,int,kn,xd,最大公约数,集锦,简单
From: https://www.cnblogs.com/AlenaNuna/p/18398549

相关文章

  • 快码住微信恢复聊天记录最简单方法
    微信紧密编织,不仅外界交流的窗口,更是情感与记忆的宝库。一次意外的手机故障,让着一场数据灾难——微信中的大量珍贵记录不翼而飞。那些记录着家人关爱、朋友欢笑和工作重要信息的对话,仿佛一夜之间被时光吞噬,只留下空洞的记忆轮廓,充满遗憾。下面我告诉大家这么快速恢复微信聊天记......
  • Django中celery的使用(非常简单的用法)
    1、https://www.cnblogs.com/hard-working-Bert/p/14236125.html这里主要展示一个最简单的django中的celery任务,为了让大家都可以用上celery。话不多说,首先给大家看一下我的目录  这里的TestCelery是我的项目名称,CeleryTask是app名称。 windows启动redis服务及修改配置文......
  • 简单加固和常用指令
    安全加固(Ubuntu22.04)1.修改密码sudopasswd2.删除用户主要包括adm,lp,sync,shutdown,halt,news,uucp,operator,games,ftp,postfix,dovecot3.修改ssh端口sudovim/etc/ssh/sshd_config#添加ssh为2222端口Port2222“:wq”保存后重启ssh服务sudosystemctlrestartss......
  • (12)非阻塞赋值与阻塞赋值区别(以简单例子说明)
    二者定义在夏语闻老师《verilog数字系统设计教程》中对二者给出如下定义:非阻塞赋值(b<=a):所赋的变量值不能立刻为下面语句所用,块结束才能完成赋值操作,且所赋变量值是上一次赋值得到的阻塞赋值(b=a):赋值语句执行完后块才能结束,b的值在赋值语句执行完后立刻改变一般在时序逻辑中......
  • 创建一个SpringBoot项目,实现简单的CRUD功能和分页查询
    背景本博文主要是创建了一个新的SpringBoot项目,实现基本的增删改查,分页查询,带条件的分页查询功能。是方便初学者学习后端项目的一个比较清晰明了的实践代码,读者可根据博文,从自己动手创建一个新的SpringBoot项目,到使用PostMan测试基本请求,完完全全实践一遍,写出自己的代码,或者实现......
  • 简单聊一聊大模型微调技术-LoRA
    简单聊一聊大模型微调技术-LoRAB站:肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频(bilibili.com)博客:肆十二-CSDN博客问答:(10封私信/72条消息)肆十二-知乎(zhihu.com)LoRA(Low-RankAdaptation)模型是一种用于减少深度学习模型训练中参数数量和计算资源消耗......
  • C#简单计算机项目
    两数求和:      Console.WriteLine("请输入一个数:");      stringstr=Console.ReadLine();      intnumb=int.Parse(str);      Console.WriteLine("请再输入一个数:");      stringstri=Console.Rea......
  • 推荐一款:简单、易懂、功能强大的Vue3可拖拽插件
    第一步:安装npm使用以下命令安装npminstallvue-grid-layout--saveyarn使用以下命令安装yarnaddvue-grid-layout第二步:配置全局变量import{createApp}from'vue'importAppfrom'./App.vue'importVueGridLayoutfrom'vue-grid-layout'//引入layout......
  • 力扣刷题--13. 罗马数字转整数【简单】
    题目描述罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符数值I1V5X10L50C100D500M1000例如,罗马数字2写做II,即为两个并列的1。12写做XII,即为X+II。27写做XXVII,即为XX+V+II。通常情况下,罗马数字中小的数字在大的数字的右边。但......
  • 力扣刷题--1837.K进制表示下的各位数字总和【简单】
    题目描述......