用Python解决了个数学问题

群里有人问
一筐鸡蛋:
1个1个拿,正好拿完。
2个2个拿,还剩1个。
3个3个拿,正好拿完。
4个4个拿,还剩1个。
5个5个拿,还差1个。
6个6个拿,还剩3个。
7个7个拿,正好拿完。
8个8个拿,还剩1个。
9个9个拿,正好拿完。
问筐里最少有多少鸡蛋?

1说明是奇数,2、4、5、8得出应该是40i+1,3、6、7、9得出应该是63j(j是奇数)。想想刚好在学Python,那就写个代码试试吧。

for i in range(3, 100):
if i%2 == 0:
    continue
#print i
j=63*i
if (j-1)%40==0:
    print i
    print 'got it'
    print j
    for m in range(1,10):
        print '=',j/m, '*',m,'+',j%m
    break

后来发现还可以缩小范围,要满足40i+1和63j,3乘7才是个位是1的,所以j只能是7,17,27这样的。
为了证实一下,把代码最后的break去掉,100以内,j还可以是47,结果2961;87,结果5481。
然后我把for的range换成到200,发现j可以是7,47,87,127,167。然后发现,是因为算出7以后,两个式子合并为63*7+63*40*k。
我在想对于一个奥数题,我是不是太认真了……(; ̄ェ ̄)

猜你喜欢

转载自blog.csdn.net/xiaokui9/article/details/54926774
今日推荐