Problem 5 Smallest multiple

2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?

问题 5 最小公倍数

2520 是可以除以 1 到 10 的每个数字而没有任何余数的最小数字。
能被 1 到 20 的所有数整除的最小正数是多少?

理论要点

最小公倍数

引用下百科的解释:

两个或多个整数公有的倍数叫做它们的公倍数,其中除 0 以外最小的一个公倍数就叫做这几个整数的最小公倍数
整数 a , b a,b a,b 的最小公倍数记为 [ a , b ] [a,b] [a,b] ,同样的, a , b , c a,b,c a,b,c 的最小公倍数记为 [ a , b , c ] [a,b,c] [a,b,c] ,多个整数的最小公倍数也有同样的记号

那如何计算最小公倍数呢?

首先,把这几个数的质因数写出来,最小公倍数等于它们所有的质因数的乘积(如果有几个质因数相同,则比较两数中哪个数有该质因数的个数较多,乘较多的次数)

例如:

最大公约数

最大公约数, a , b a,b a,b 的最大公约数记为 ( a , b ) (a,b) (a,b)

即:短除寻找公因数数,直到找不出公因数,左侧公因数乘积即为最大公约数

最大公约数和最小公倍数的关系

两个数的乘积等于这两个数的最大公约数与最小公倍数的乘积

若有两数 a , b a,b a,b,它们的最大公约数是 p p p,最小公倍数是 q q q

那么

a × b = p × q \large a×b=p×q a×b=p×q

该公式可改写为

a × b = g c d ( a , b ) × q \large a×b=gcd\left (a,b \right)×q a×b=gcd(a,b)×q

那么,我们给出最小公倍数的计算公式

l c m ( a , b ) = a b g c d ( a , b ) = q \large lcm(a,b)=\frac{ab}{gcd(a,b)}=q lcm(a,b)=gcd(a,b)ab​=q

欧几里得算法

又称辗转相除法,用于计算两个非负整数 a , b a,b a,b 的最大公约数

  • 用较小数除较大数
  • 再余数(第一余数)去除除数
  • 再用出现的余数(第二余数)去除第一余数
  • 迭代,直到最后余数是0为止。若要求两个数的最大公约数,则最后的除数就是这两个数的最大公约数

计算公式

g c d ( a , b ) \large gcd\left (a,b \right) gcd(a,b)

思路分析

根据欧几里得算法计算公式,计算得到两数最大公约数,再由最小公倍数计算公式得出最小公倍数。然后让两个数的最小公倍数和第三个数计算最小公倍数,迭代求算即可

代码实现

/** @Author: coder-jason* @Date: 2022-04-11 14:08:31* @LastEditTime: 2022-04-11 14:59:47*/
#include <iostream>
using namespace std;typedef long long variable; // 定义类型别名variable gcd(variable a, variable b) // gcd 实现
{return b>0 ? gcd(b, a % b) : a;
}int main()
{variable ans = 1;for (int i = 2; i <= 20; i++){ans = ans * i / gcd(ans, i);}cout << ans << endl;return 0;
}

答案:232792560

【欧拉计划第 5 题】最小公倍数 Smallest multiple相关推荐

  1. 欧拉计划 第5题 Smallest multiple

    问题 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any r ...

  2. 【欧拉计划第 13 题】 大数之和 Large sum

    Problem 13 Large sum Work out the first ten digits of the sum of the following one-hundred 505050-di ...

  3. 详解欧拉计划第395题:毕达哥拉斯树

    本题难度系数为40%(最易5%,最难100%). 毕达哥拉斯树是按如下步骤生成的分形图形: 从一个单位正方形开始,以其中一条边为基底(在图示中,单位正方形下放的边作为基底),给基底所对的边粘连上一个三 ...

  4. 欧拉计划:第53题 Combinatoric selections

    欧拉计划:第53题 Combinatoric selections 无意中知道有这个用编程解决数学题的网站,个人对数学又比较感兴趣,所以打算做个欧拉计划系列,将自己的一些见解分享给大家,第一次写文章, ...

  5. 欧拉计划(project euler)最详细中文题解

    欧拉计划是一个在线解题网站,题目以各类数学问题为主,通常需要结合一定的数学与编程知识,写出适当的程序求解问题(详细介绍可以参见我的文章).相比于力扣等刷题网站,欧拉计划上的题目有着更丰富的知识背景,在 ...

  6. 欧拉计划 Project Euler 50-56

    Project Euler 50-56 Project Euler: https://projecteuler.net/ Project Euler | 欧拉计划: https://pe-cn.git ...

  7. 欧拉计划 P429 (数论)

    欧拉计划 P429 Sum of squares of unitary divisors(数论) 传送门:https://projecteuler.net/problem=429 题目大意: 定义一个 ...

  8. 欧拉计划(鱼C论坛)@20161107

    1.10以下的自然数中,属于3或5的倍数的数字有3,5,6,9,它们之和为23找出1000以下的自然数中,属于3或5倍数的所有数字之和. """ 欧拉计划 10以下的自然 ...

  9. python求直角三角形个数的公式_Python3 欧拉计划 问题71-75

    EulerProject.png 问题66-70参见:https://www.jianshu.com/p/d0fad6213433 71.有序分数 考虑形如n/d的分数,其中n和d均为正整数.如果n ...

最新文章

  1. java basic认证_Basic认证
  2. 如何防止无线网络被破解
  3. jpa动态扩展sql_扩展您的JPA POJO
  4. 云网一体,“湘遇湘融 | 移动云TeaTalk·长沙站 启动倒计时
  5. python -- lambda表达式
  6. 设计模式学习笔记——中介者(Mediator)模式
  7. 3D打印文件格式:STL、OBJ、AMF、3MF
  8. 极大似然估计的通俗理解
  9. html空格符的代码用转义字符怎么表示,html空格符号标签 空格符号怎么打出来HTML?...
  10. 系统完全优化 全面剖析XP
  11. 图像Scaler缩放因子
  12. php 上传微信客服头像,微信多客服上传头像
  13. IP地址和物理地址的区别和联系
  14. 三十八、西梁女儿国疑案之一落胎泉的秘密
  15. 学生台灯哪个品牌的专业?盘点小学生台灯品牌排行榜
  16. TCP选项之SACK选项概述
  17. matlab 矩阵分解
  18. 东师理想资源(可扩展为试题、试卷、微课、备课、作业、精品等其它业务)升级方案...
  19. lombok基本使用
  20. 易帅和夺帅,盛大与骏网

热门文章

  1. Mac 移动硬盘无法装载
  2. 高仙技术家|SLAM(二)——完善回环检测的视觉SLAM
  3. 分析比较国内几大OTA(Online Travel Agency)的优劣势
  4. 经纬财富:乌海黄金白银暂缓跌势
  5. 夏敏捷第28本著作《Flash ActionScript3.0动画基础与游戏设计》(Flash CC版)
  6. 明天帮人拍照---婚礼摄影备课[zt]
  7. 【在线可测】通用中文点选验证码识别
  8. ipad已有2周未备份。ipad插入电源、被锁定且接入Wi-Fi时会进行备份
  9. 物联网开发笔记(64)- 使用Micropython开发ESP32开发板之控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:控件显示
  10. MCUXpresso开发RT1060(1)——使用RGB接口LCD