带锁的门

版权声明:本文为博主原创文章,转载请注明博客地址: https://blog.csdn.net/zy010101/article/details/88381999

带锁的门

在走廊上有N个带锁的门,从1到N依次编号。最初所有的门都看关着的。我们从门前经过n次,每一次都从1号门开始。在第i次经过时(i = 1,2,...,n)。我们改变i的整数倍号锁的状态:如果门是关的,就打开它;如果门是开的,就关闭它。在最后一次经过后,哪些门是关上的,哪些门是开着的?有多少开着的门。

题目来自于《算法设计与分析基础》。

解决

首先,我们来尝试收购小规模来模拟一下这个过程。刚开始所有的门都是关着的,那么我们第一次经过的时候,所有的门都被打开。然后,我们接着第二次经过,这次我们将关闭是2的倍数的门。我们发现2 ,4, 6,等偶数门都被关上。第三次,我们经过的时候,所有3的倍数的门都被打开或者关上(例如:6现在是打开的,3是关闭的)。我们发现了这个规律是:“第i次经过的时候,如果门的序号是i的倍数,那么门的状态将被改变,也就是说,门的状态改变的次数取决于它的序号所含的因数有多少个。

那么我们尝试写一下。

数字 因数个数
1 1
2 2
3 2
4 3
5 2
6 4
7 2
8 4
9 3

刚开始门是关闭的,因此经过偶数次改变门的状态,门的最终状态是关闭的;经过奇数次改变门的状态,门最终的状态是开启的。观察发现,只有1,4,9这三个数字的因数有奇数个,它们最终是被打开的。1,4,9这个序列我们比较容易联想到完全平方数序列1,4,9,16,25.,...。事实证明确实只有完全平方数的所有因数的总个数是奇数个。

完全平方数

如果一个正整数 a 是某一个整数 b 的平方,那么这个正整数 a 叫做完全平方数。零也可称为完全平方数。其性质如下:

(1)平方数的个位数字只能是 0, 1,4,5,6,9 。

(2)任何偶数的平方一定能被 4 整除;任何奇数的平方被 4(或 8)除余 1,即被4 除余 2 或 3 的数一定不是完全平方数。

(3)完全平方数的个位数字是奇数时,其十位上的数字必为偶数。完全平方数的个位数字是 6 时,其十位数字必为奇数。

(4)凡个位数字是 5 但末两位数字不是 25 的自然数不是完全平方数;末尾只有奇数个 0 的自然数不是完全平方数;个位数字是 1,4,9 而十位数字为奇数的自然数不是完全平方数。

(5)除 1 外,一个完全平方数分解质因数后,各个质因数的指数都是偶数,如果一个数质分解后, 各个指数都为偶数, 那么它肯定是个平方数。 完全平方数的所有因数的总个数是奇数个。因数个数为奇数的自然数一定是完全平方数。

(6)若质数 p 整除完全平方数 a,则  |a。(表示整除)

(7)如果 a 、b 是平方数, a=bc ,那么 c 也是完全平方数。

(8)两个连续自然数的乘积一定不是平方数,两个连续自然数的平方数之间不再有平方数。

(9)如果十位数字是奇数,则它的个位数字一定是6;反之也成立。

推论1:如果一个数的十位数字是奇数,而个位数字不是6,那么这个数一定不是完全平方数。

推论2:如果一个完全平方数的个位数字不是6,则它的十位数字是偶数。

(10)偶数的平方是4的倍数;奇数的平方是4的倍数加1。

(11)奇数的平方是8n+1型;偶数的平方为8n或8n+4型。(奇数:n比那个所乘的数-1;偶数:n比那个所乘的数-2)

(12)形式必为下列两种之一:3k,3k+1。

(13)不是5的因数或倍数的数的平方为5k+-1型,是5的因数或倍数的数为5k型。

(14)形式具有下列形式之一:16m,16m+1,16m+4,16m+9。

(15)性质11:如果质数p能整除a,但p的平方不能整除a,则a不是完全平方数。

(16)在两个相邻的整数的平方数之间的所有整数都不是完全平方数。

(17)一个正整数n是完全平方数的充分必要条件是n有奇数个因数(包括1和n本身)。

以上性质摘自百度百科

猜你喜欢

转载自blog.csdn.net/zy010101/article/details/88381999