欧拉计划 第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?
2520可以被1-10的每一个数整除,能被1-20每个数整除的最小的正数是多少?
思路
该题目本质上是求解1-20的最小公倍数,我们可以先求两个数字的最小公倍数,再将其扩展到多个数字的最小公倍数。
根据 两个数字的最小公倍数 * 两个数字的最大公因数 = 两个数字的乘积 这一规律,要求解两个数字的最小公倍数,我们可以先求解两个数字的最大公因数。
最大公因数可以使用辗转相减法求解。
辗转相减法
用较大的数字减去较小的数字,直到两个数字相同时,相同数字即为两个数字的最大公因数。
举例:求解(35,28)的最大公因数
(35,28)中,35较大,用35减去28
->(7,28)中,28较大,用28减去7
->(7,21)中,21较大,用21减去7
->(7,14)中,14较大,用14减去7
->(7,7),两数字相同,即7为35和28的最大公因数
代码实现(python)
# # 先使用辗转相减法法计算两个数的最大公因数,再由此计算两个数的最小公倍数,最后再将两个数的最小公倍数扩展至多个数的最小公倍数import numpy as np# # 求两个数字的最大公因数
def cofactor_2(a, b):while a != b:if a > b:a = a - belif a < b:t = aa = bb = treturn a# # 求两个数字的最小公倍数
def comultiple_2(a, b):c = a * bmincomult = c / cofactor_2(a, b)return mincomult# # 求多个数字的最小公倍数
def comultiple_mul(shuzu):a = shuzu[0]b = shuzu[1]index = 1for i in range(len(shuzu)-1):a = comultiple_2(a, b)if index < len(shuzu) - 1:index += 1b = shuzu[index]else:passreturn aif __name__ == '__main__':shuzu = [i for i in range(1, 21, 1)]# print(shuzu)x = comultiple_mul(shuzu)print(x)
欧拉计划 第5题 Smallest multiple相关推荐
- 【欧拉计划第 5 题】最小公倍数 Smallest multiple
Problem 5 Smallest multiple 2520 is the smallest number that can be divided by each of the numbers f ...
- 【欧拉计划第 13 题】 大数之和 Large sum
Problem 13 Large sum Work out the first ten digits of the sum of the following one-hundred 505050-di ...
- 详解欧拉计划第395题:毕达哥拉斯树
本题难度系数为40%(最易5%,最难100%). 毕达哥拉斯树是按如下步骤生成的分形图形: 从一个单位正方形开始,以其中一条边为基底(在图示中,单位正方形下放的边作为基底),给基底所对的边粘连上一个三 ...
- 欧拉计划:第53题 Combinatoric selections
欧拉计划:第53题 Combinatoric selections 无意中知道有这个用编程解决数学题的网站,个人对数学又比较感兴趣,所以打算做个欧拉计划系列,将自己的一些见解分享给大家,第一次写文章, ...
- 欧拉计划(project euler)最详细中文题解
欧拉计划是一个在线解题网站,题目以各类数学问题为主,通常需要结合一定的数学与编程知识,写出适当的程序求解问题(详细介绍可以参见我的文章).相比于力扣等刷题网站,欧拉计划上的题目有着更丰富的知识背景,在 ...
- 欧拉计划 Project Euler 50-56
Project Euler 50-56 Project Euler: https://projecteuler.net/ Project Euler | 欧拉计划: https://pe-cn.git ...
- 欧拉计划 P429 (数论)
欧拉计划 P429 Sum of squares of unitary divisors(数论) 传送门:https://projecteuler.net/problem=429 题目大意: 定义一个 ...
- 欧拉计划(鱼C论坛)@20161107
1.10以下的自然数中,属于3或5的倍数的数字有3,5,6,9,它们之和为23找出1000以下的自然数中,属于3或5倍数的所有数字之和. """ 欧拉计划 10以下的自然 ...
- python求直角三角形个数的公式_Python3 欧拉计划 问题71-75
EulerProject.png 问题66-70参见:https://www.jianshu.com/p/d0fad6213433 71.有序分数 考虑形如n/d的分数,其中n和d均为正整数.如果n ...
最新文章
- python语言程序设计——深入学习python
- 30天敏捷结果(5):使用热图标识出重要事情
- java语言的数组描述_下列关于Java语言的数组描述中,错误的是()。_学小易找答案...
- HTML/CSS——网页SVG ICON(小图标)解决方案
- .net core 2.0学习笔记(一):开发运行环境搭建
- 华中科技大学主校区论文被《SCI》收录的研究
- Mac上显示出.m2文件夹并将IDEA中的Maven修改为阿里云镜像
- java 上传文件到服务器_java上传文件到OSS云服务器(二)
- 【图论】用链式前向星(邻接表)存有向图(图文代码逐句分析)
- 1 在c语言中不正确的常量是 a0xf6,C语言第三章在线测试题目及答案
- 增值税税控设备(计算机打印机)全额抵扣,在航天金穗购买的打印机、扫描仪是否属于防伪税控设备...
- 怎么改变鼠标图案HTML,怎么换鼠标指针的颜色和图案?
- apabi无限借阅的研究
- [渝粤教育] 九江学院 看影视学社交礼仪 参考 资料
- 徐小明:这次我支持房产新政
- [OpenHarmony] [RK2206] 构建OpenHarmony编译器 (二)
- mysql column specified twice_Mysql抛出Column 'descriptions' specified twice异常解决方法
- 华为畅享7鸿蒙,华为畅享7开箱图赏:做工配置表现不俗
- 解决 错误: 在类XXX中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类
- 开始做一个简单的记账工具