码迷,mamicode.com
首页 > 其他好文 > 详细

一筐鸡蛋的lcm

时间:2017-02-09 13:44:30      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:amp   问题   i++   let   多少   条件   min   lan   shell   

问题

一筐鸡蛋,
一个一个取正好取完,
两个两个取剩下一个,
三个三个取正好取完,
四个四个取剩下一个,
五个五个取少一个,
六个六个取剩下三个,
七个七个取正好取完,
八个八个取剩下一个,
九个九个取正好取完,
共多少鸡蛋。

数学解法

第五个条件特殊,可以改为:
五个五个取剩四个。

数学符号

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

标签:amp   问题   i++   let   多少   条件   min   lan   shell   

原文地址:http://www.cnblogs.com/errorx/p/6381598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!