據說是網易的面試題:
首先:n(n^2-1)=(n-1)n(n+1)
--------------
--------------
--------------①;
而24=2*3*4,所以我們要驗證24****=n(n^2-1)。
網上有說①式能同時被2、3、4整除,所以就能被24整除,這個有一點小bug的,比如說12,比如說36。當然題目所給命題是正確的,只是他們證明方法有一點小瑕疵。
分三種情況討論
//************************************//
一、當n=3x;(x為自然數)
由於n是乙個奇數,所以x肯定是奇數,設x=2a+1;(a為自然數)
所以n=6a+3,①=(6a+2)*(6a+3)*(6a+4)=2*(3a+1)*3*(2a+1)*2*(3a+2)=12*(3a+1)*(2a+1)*(3a+2)--------------②
②式中3a+1和3a+2肯定有乙個是偶數(1.a為奇數時,3a+1是偶數;2.a為偶數時,3a+2是偶數),
所以②式能被12*2整除,即①能被24整除;
//************************************//
二、當n=3x+1;(x為自然數)
由於n是乙個奇數,所以x肯定是偶數,設x=2b;(b為自然數)
則n=6b+1,①=6b*(6b+1)*(6b+2)=12*b*(6b+1)*(3b+1)--------------
--------------③
③式中b和3b+1肯定有乙個是偶數(1.b是奇數時,3b+1就是偶數;2.b是偶數時,b是偶數),所以③式能被12*2整除,即①能被24整除;
//************************************//
三、當n=3x+2;(x為自然數)
由於n是奇數,所以x肯定是奇數,設x=2c+1;(c為自然數)
所以n=6c+5,①=(6c+4)*(6c+5)*(6c+6)=12*(3c+2)(6c+5)(c+1)--------------
--------------④
④式中c+1和3c+2肯定有乙個是偶數(1.c是奇數時,c+1是偶數; 2.c是偶數時,3c+2是偶數),所以④式能被12*2整除,即①能被24整除;
//************************************// 綜上
一、二、三所述,n=3x+1, n=3x+2, n=3x+3時,①式均能被24整除;
所以對於所有的奇數n,n*(n^2-1)能被24整除。
故,得證。
判斷乙個正整數是2的n次
判斷乙個正整數是2的n次,假設不包括0。想了三種辦法。第一種 任意乙個數,如果是1,則為2的n次,如果大於1,則1 判斷該數是否為偶數,是則轉2,否則不是2的n次。2 判斷該數是否為2,是則為2的n次,否則對2做整除運算後轉1。在devc 上進行了實現,如下 include using namesp...
判斷乙個整數是否是2的n次方
參考 如題,如何判斷乙個整數是否是2的n次方,我能想到的方法有兩個 1.一直除2,看最後是否等於1.最笨的方法 2.轉換成2進製,看是否是這個樣子的 1,10,100,1000,10000,就是除了最高位是1,其他都是0,或者說只有乙個1.3.當我還在為我能想到第二個方法而沾沾自喜的時候,我看到了下...
判斷乙個數是否是2的N次方
對於判斷乙個數是否為2的n次方問題,通常想到的最為直接的辦法就是對這個數不斷對2取餘,為0就將該數變為該數除以2,直到最後該數為1為止。void judge int n printf no n return 不過上面的方法並不是較好的方法,其實還有更為簡潔高效的方法 乙個整數,若是2的n次方,有沒有...