啊哈,381654729!

题目:由1到9九个数字组成的九位数,各位不重复。
前n个数字组成的n位数可以被n整除,求这个九位数。

解:

所需要的一些数学知识:

判断一数字能否被1、2、3、5整除。小学知识,无需多言。

判断一数字能否被6整除:尾数是否为偶、各位和是否3的倍数。

判断一数字能否被9整除:各位和是否9的倍数。(比如abc = a * 90 + b * 9 + a + b + c,问题就转化了a+b+c能否被9整除)

判断一数字能否被4整除:看末位两数组成的两位数能否被4整除。(比如abcdef,因为它等于abcd*100+ef,所以只需判断ef能否被4整除)

判断一数字能否被8整除:看末尾三数组成的三位数能否被8整除。(比如abcdef,等于abc * 1000 + def,所以只须判断def)

 

现在开始求解题目:

设该数字为abcdefghi。

0)。从1到9相加之和为45,是9的倍数。所以无论9个数字怎么排列,都是9的倍数。

1)。abcde要能被5整除,所以e只能为5.

2)。b、d、f、h都必须是偶数,a、c、g、i 必须是奇数

3)。abc能被3整除,故a+b+c是3的倍数;abcdef被6整除,故a+b+c+d+e+f也是3的倍数。
于是d+e+f也是3的倍数。因为e=5,且d、f是2、4、6、8中的两个偶数。所以:d、f要么为2、8,要么为4、6.

4)。abcd能被4整除,故cd须被4整除,而c只能取1、3、7、9中某数,如果d取4或8,cd无法被4整除,所以d只能取2或6!

 

5)。我们先假设,d为2,

于是f=8,h只能取4或6,因为abcdefgh要被8整除,所以fgh需要被8整除,也就是gh要被8整除。

而g是1、3、7、9中的一个,所以h不能为4,gh无法被8整除。于是h=6,b=4,而g只能取1或者9。

如果g取了1,那么abc中的a、c只能取3、7、9中的两数,无论怎么取,都无法让a、b、c之和为3的倍数,所以g不能取1,只能取9!而a、c分取1、7,i=3。

于是现在得到两个数:147258963、741258963.

这两个数字都满足了:当n不等于7时,前n位数字组成的n位数都被n整除。

可惜,通过验证发现,它们都不满足n=7的情况! 于是得出结论:d不能为2!!!

 

6)。由以上,知:d只能取6! 于是f = 4.

h只能取2或者8. g取1、3、7、9中某数。 因为要使fgh被8整除,现在f为4。于是:h不能为8!

因为在前面这几个约束下,如果h取了8,那么fgh将无法被8整除!

所以,h只能取2!(于是b=8.) g只能取3或者7.

g可以取3吗?不行,因为abcdefg是要被7整除的,如果g=3,则f必须大于6,这样才能在最后可能拼出个63来以便被7整除,而f现在是4,比6小,所以g不能为3! 于是g只能为7!

现在a、c只能取1、3、9中两数,为使abc被3整除,故a、c只能取1、3或者1、9。

于是得到四个数字:183654729、381654729、189654723、981654723.

这四个数字都满足了:当n不等于7时,前n位数字组成的n位数都被n整除。

通过验证发现:只有381654729满足了n=7的情况!!!

于是:最后的结果:这个九位数就是:381654729!

 

//2009年12月5日夜,躺床上推导数小时,终有所获。

 

posted on 2009-12-06 16:14  台哥编程课堂  阅读(366)  评论(0编辑  收藏  举报

导航