一筐鸡蛋的lcm
问题
一筐鸡蛋,
一个一个取正好取完,
两个两个取剩下一个,
三个三个取正好取完,
四个四个取剩下一个,
五个五个取少一个,
六个六个取剩下三个,
七个七个取正好取完,
八个八个取剩下一个,
九个九个取正好取完,
共多少鸡蛋。
数学解法
第五个条件特殊,可以改为:
五个五个取剩四个。
数学符号
lcm(a,b,...,c)=x 最小公约数
x mod y = z 余数
数学描述
x mod 1 = 0
x mod 2 = 1
x mod 3 = 0
x mod 4 = 1
x mod 5 = 4
x mod 6 = 3
x mod 7 = 0
x mod 8 = 1
x mod 9 = 0
Solution
1 no use;
step 1
1) x mod lcm(2,4,8) = 1
2) x mod lcm(3,7,9) = 0
3) x mod 5 = 4
4) x mod 6 = 3
step 2
1) x mod 8 = 1
2) x mod 63 = 0
3) x mod 5 = 4
4) x mod 6 = 3
step 3
1),3)
min(x)=9
lcm(8,5)=40
2),4)
min(x)=63
lcm(6,63)=126
1) x mod 40 = 9
2) x mod 126 = 63
step 4
let
x = 40 * m + 9
x = 126 * n + 63
40 * m + 9 - (126 * n + 63) = 0
==> 40m - 126n = 54
if m=4 n=1
160-126=34
if m=4*4 n=4+1
4(160-126)-126=10
=> if m=2*4*4+4,n=2*(4+1)+1
40m - 126n = 10*2+34 = 54
=> n = 11; min(x)=126*11+63=1449
=> x mod min(lcm(40,126)>1449) = 1449
min(lcm(40,126)>1449)=1260*2=2520
==> x=n*2520+1449
程序
for(var i=1;i<99999;i++){
if(i%2==1&&i%3==0&&i%4==1&&i%5==4&&i%6==3&&i%7==0&&i%8==1&&i%9==0){console.log(i)}
}
一筐鸡蛋的lcm的更多相关文章
- java技术知识点
1 自我介绍 2 做过的项目 (Java 基础) 3 Java的四个基本特性(抽象.封装.继承,多态),对多态的理解(多态的实现方式)以及在项目中那些地方用到多态 Java的四个基本特性 ◦ ...
- C#编辑基础笔记
目录 1. .NET .NET Framework是一种多语言的平台,一种技术. 而c#是基于其上面的一种语言. 1 2. Winform 桌面应用程序[从.net平台上面开发的 ...
- Day4 装饰器——迭代器——生成器
一 装饰器 1.1 函数对象 一 函数是第一类对象,即函数可以当作数据传递 #1 可以被引用 #2 可以当作参数传递 #3 返回值可以是函数 #3 可以当作容器类型的元素 二 利用该特性,优雅的取代多 ...
- python基础6 迭代器 生成器
可迭代的:内部含有__iter__方法的数据类型叫可迭代的,也叫迭代对象实现了迭代协议的对象 运用dir()方法来测试一个数据类型是不是可迭代的的. 迭代器协议是指:对象需要提供next方法,它要么返 ...
- 【Java框架型项目从入门到装逼】第五节 - 在Servlet中接收和返回数据
在上一节的程序中,我们可以看到HttpServletRequest, HttpServletResponse这两个对象.可以说,这是JavaWeb中至关重要的两个对象.接下来,我们来做一个简短的说明: ...
- Python入门之三元表达式\列表推导式\生成器表达式\递归匿名函数\内置函数
本章目录: 一.三元表达式.列表推导式.生成器表达式 二.递归调用和二分法 三.匿名函数 四.内置函数 ================================================ ...
- c语言总练习题
!4,42 ?45 1 Description 键盘输入一个双精度数据,乘以2以后输出 Input 输入一个double型数据 Output 输出它的两倍数,结果保留8位小数 Sample Input ...
- 周末班:Python基础之函数进阶
迭代器和生成器 迭代和可迭代 什么是迭代(iteration)? 如果给定一个list或tuple,我们要想访问其中的某个元素,我们可以通过下标来,如果我们想要访问所有的元素,那我们可以用for循环来 ...
- Python基础之迭代器和生成器
阅读目录 楔子 python中的for循环 可迭代协议 迭代器协议 为什么要有for循环 初识生成器 生成器函数 列表推导式和生成器表达式 本章小结 生成器相关的面试题 返回顶部 楔子 假如我现在有一 ...
随机推荐
- C# dns.gethostentry()获取失败,提示不存在主机
传入参数domain有误. 如果是域名,可以解析.如果是局域ip可以解析. 如果是外网,解析不成功. 解决方法: 判断传入参数是域名还是ip,如果是域名,则使用dns.gethostentry(dom ...
- C语言变量声明内存分配
转载: C语言变量声明内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等.其操作方式类似于数据结 ...
- [leetcode]28. Implement strStr()实现strStr()
Implement strStr(). Return the index of the first occurrence of needle in haystack, or -1 if needle ...
- MongoDB学习记录(一) - 安装、启动与建立数据库
简要说明一个基本概念:MongoDB中的三要素:数据库(database).集合(collection)和文档(document). 文档:类似于JSON对象,由字段(field)和值(value)组 ...
- 【轻松前端之旅】CSS选择器中的空格与尖括号有何区别?
CSS选择器中的空格与尖括号有何区别? 例子1: .a .b { margin: 0; } 空格隔开a和b,选择所有后代元素. 例子2: .a>.b { margin: 0; } 尖括号隔开a和 ...
- VM无法连接到虚拟机
The VMware Authorization Service is not running. 原因 虚拟机服务没有开启 解决方法 1. 我的电脑右击->管理 2. 打开服 ...
- docker学习笔记-命令大全
容器生命周期管理 • Run OPTIONS说明: • -a :显示所有的容器,包括未运行的. • -f :根据条件过滤显示的内容. • --format :指定返回值的模板文件. • -l :显示最 ...
- python信息收集之子域名
python信息收集之子域名 主要是以下3种思路: 字典爆破 搜索引擎 第三方网站 0x00 背景知识 list Python内置的一种数据类型是列表:list是一种有序的集合. >>&g ...
- windows基于vs2017的opencv安装
1.opencv下载与安装 1.下载地址:官网下载地址https://opencv.org/releases.html opencv为开源软件,可直接在官网下载最新版本. 2.软件安装:openc ...
- MVC 5使用TempData Object跨视图传递数据
经过一系列显示数据的练习:<MVC 5使用ViewData(对象)显示数据>http://www.cnblogs.com/insus/p/3377178.html<MVC 5使用Vi ...