一筐鸡蛋的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)}
}
时间: 2024-09-28 20:20:53

一筐鸡蛋的lcm的相关文章

跟鸡蛋有关的问题

还是一筐鸡蛋 1个1个拿完 2个2个拿剩1个 3个3个拿剩1个 4个4个拿剩1个 5个5个拿剩1个 6个6个拿剩1个 7个7个拿拿完 问有多少个鸡蛋 i=0while True: if (i%1==0) and (i%2==1) and (i%3==1) and (i%4==1) and (i%5==1) and (i%6==1) and (i%7==0): print(i) i=i+1 else: i = i + 1

猜鸡蛋数量

求解: 一筐鸡蛋: 1个1个拿正好拿完: 2个2个拿最后剩下1个: 3个3个拿正好拿完: 4个4个拿最后剩下1个: 5个5个拿最后剩下4个: 6个6个拿最后剩下3个: 7个7个拿最后剩下5个: 8个8个拿最后剩下1个: 9个9个拿正好拿完. 问筐里一个有多少个鸡蛋(假设这个筐最多能放一万个鸡蛋)? [[email protected] ~]# cat egg_num.sh  #!/bin/bash for (( i=1 ; i<10001 ; i++ )) do     [ $[$i % 2] 

取鸡蛋问题

求鸡蛋总数 一筐鸡蛋,1个1个拿,刚好拿完:2个2个拿,剩下1个:3个3个拿,剩下1个:4个4个拿,剩下1个,5个5个拿,剩下1个:6个6个拿,剩下1个:7个7个拿,刚好拿完:问这筐鸡蛋有多少? 问题解决 这里我们使用Python3进行求解. # 求鸡蛋总数 x = 1 while(x<10000): x += 1 if(x%2==1 and x%3==1 and x%4==1 and x%5==1 and x%6==1 and x%7==0): break print("x ="

九 函数

什么是函数? 为什么要用函数? 函数的分类:内置函数与自定义函数 如何自定义函数 语法 定义有参数函数,及有参函数的应用场景 定义无参数函数,及无参函数的应用场景 定义空函数,及空函数的应用场景 调用函数 如何调用函数 函数的返回值 函数参数的应用:形参和实参,位置参数,关键字参数,默认参数,*args,**kwargs 高阶函数(函数对象) 函数嵌套 作用域与名称空间 装饰器 迭代器与生成器及协程函数 三元运算,列表解析.生成器表达式 函数的递归调用 内置函数 面向过程编程与函数式编程 本节课

python之路系列-生成器和迭代器-景丽洋老师

返回顶部 楔子 假如我现在有一个列表l=['a','b','c','d','e'],我想取列表中的内容,有几种方式? 首先,我可以通过索引取值l[0],其次我们是不是还可以用for循环来取值呀? 你有没有仔细思考过,用索引取值和for循环取值是有着微妙区别的. 如果用索引取值,你可以取到任意位置的值,前提是你要知道这个值在什么位置. 如果用for循环来取值,我们把每一个值都取到,不需要关心每一个值的位置,因为只能顺序的取值,并不能跳过任何一个直接去取其他位置的值. 但你有没有想过,我们为什么可以

day16 迭代器和生成器

分页查找 #5.随意写一个20行以上的文件(divmod) # 运行程序,先将内容读到内存中,用列表存储. # l = [] # 提示:一共有多少页 # 接收用户输入页码,每页5条,仅输出当页的内容 def read_page(bk_list,n,endline=None): startline = 5 * (n-1) endline = endline+startline-1 if endline else startline + 4 # print(startline,endline) fo

函数复习

阅读目录 什么是函数? 为什么要用函数? 函数的分类:内置函数与自定义函数 如何自定义函数 语法 定义有参数函数,及有参函数的应用场景 定义无参数函数,及无参函数的应用场景 定义空函数,及空函数的应用场景 调用函数 如何调用函数 函数的返回值 函数参数的应用:形参和实参,位置参数,关键字参数,默认参数,*args,**kwargs 高阶函数(函数对象) 函数嵌套 作用域与名称空间 装饰器 迭代器与生成器及协程函数 三元运算,列表解析.生成器表达式 函数的递归调用 内置函数 面向过程编程与函数式编

计算机基础-----迭代器 和生成器

迭代器 1.1迭代器 和 可迭代对象 迭代器的本质   就是for循环调用的底层内置函数的运用 可迭代对象:字符串.列表.元组.字典.集合都是可迭代的对象  迭代器协议--必须要满足两点才可以叫做可迭代协议 :  内部实现了__iter__和__next__ 1.2迭代器----iterator 通过代码来理解 ''' dir([1,2].__iter__())是列表迭代器中实现的所有方法,dir([1,2])是列表中实现的所有方法,都是以列表的形式返回给我们的,为了看的更清楚,我们分别把他们转

python基础之迭代器协议和生成器

一 递归和迭代 略 二 什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象. 三 python中强大的for循环机制 for循环的本