问题
一筐鸡蛋,
一个一个取正好取完,
两个两个取剩下一个,
三个三个取正好取完,
四个四个取剩下一个,
五个五个取少一个,
六个六个取剩下三个,
七个七个取正好取完,
八个八个取剩下一个,
九个九个取正好取完,
共多少鸡蛋。
数学解法
第五个条件特殊,可以改为:
五个五个取剩四个。
数学符号
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)}
}