如何判斷乙個數是不是乙個完全平方數?

2021-06-05 01:15:30 字數 2515 閱讀 9425

在不使用浮點函式sqrt的情況下,我們有一些比較好的演算法:

1.利用恒等式: 1+3+5+7+....+(2*n-1)=n^2

bool

issqrt(

intn)

複製**

下面是一些關於完全平方數的數學性質:

對排除完全平方數有一定的加速作用:

性質1:完全平方數的末位數只能是0,1,4,5,6,9。 

性質2:奇數的平方的個位數字為奇數,十位數字為偶數。 

證明 奇數必為下列五種形式之一: 

10a+1, 10a+3, 10a+5, 10a+7, 10a+9 

分別平方後,得 

(10a+1)^2=100+20a+1=20a(5a+1)+1 

(10a+3)^2=100+60a+9=20a(5a+3)+9 

(10a+5)^2=100+100a+25=20 (5a+5a+1)+5 

(10a+7)^2=100+140a+49=20 (5a+7a+2)+9 

(10a+9)^2=100+180a+81=20 (5a+9a+4)+1 

綜上各種情形可知:奇數的平方,個位數字為奇數1,5,9;十位數字為偶數。 

性質3:如果完全平方數的十位數字是奇數,則它的個位數字一定是6;反之,如果完全平方數的個位數字是6,則它的十位數字一定是奇數。 

證明 已知=10k+6,證明k為奇數。因為的個位數為6,所以m的個位數為4或6,於是可設m=10n+4或10n+6。則 

10k+6=(10n+4)=100+(8n+1)x10+6 

或 10k+6=(10n+6)=100+(12n+3)x10+6 

即 k=10+8n+1=2(5+4n)+1 

或 k=10+12n+3=2(5+6n)+3 

∴ k為奇數。 

推論1:如果乙個數的十位數字是奇數,而個位數字不是6,那麼這個數一定不是完全平方數。 

推論2:如果乙個完全平方數的個位數字不是6,則它的十位數字是偶數。 

性質4:偶數的平方是4的倍數;奇數的平方是4的倍數加1。 

這是因為 (2k+1)=4k(k+1)+1 

(2k)=4 

性質5:奇數的平方是8n+1型;偶數的平方為8n或8n+4型。 

在性質4的證明中,由k(k+1)一定為偶數可得到(2k+1)是8n+1型的數;由為奇數或偶數可得(2k)為8n型或8n+4型的數。 

性質6:平方數的形式必為下列兩種之一:3k,3k+1。 

因為自然數被3除按餘數的不同可以分為三類:3m,3m+1, 3m+2。平方後,分別得 

(3m)=9=3k 

(3m+1)=9+6m+1=3k+1 

(3m+2)=9+12m+4=3k+1 

同理可以得到: 

性質7:不能被5整除的數的平方為5k±1型,能被5整除的數的平方為5k型。 

性質8:平方數的形式具有下列形式之一:16m,16m+1, 16m+4,16m+9。 

除了上面關於個位數,十位數和餘數的性質之外,還可研究完全平方數各位數字之和。例如,256它的各位數字相加為2+5+6=13,13叫做256的各位 數字和。如果再把13的各位數字相加:1+3=4,4也可以叫做256的各位數字的和。下面我們提到的乙個數的各位數字之和是指把它的各位數字相加,如果 得到的數字之和不是一位數,就把所得的數字再相加,直到成為一位數為止。我們可以得到下面的命題: 

乙個數的數字和等於這個數被9除的餘數。 

下面以四位數為例來說明這個命題。 

設四位數為,則 

= 1000a+100b+10c+d 

= 999a+99b+9c+(a+b+c+d) 

= 9(111a+11b+c)+(a+b+c+d) 

顯然,a+b+c+d是四位數被9除的餘數。 

對於n位數,也可以仿此法予以證明。 

關於完全平方數的數字和有下面的性質: 

性質9:完全平方數的數字之和只能是0,1,4,7,9。 

證明 因為乙個整數被9除只能是9k,9k±1, 9k±2, 9k±3, 9k±4這幾種形式,而 

(9k)=9(9)+0 

(9k±1)=9(9±2k)+1 

(9k±2)=9(9±4k)+4 

(9k±3)=9(9±6k)+9 

(9k±4)=9(9±8k+1)+7 

除了以上幾條性質以外,還有下列重要性質: 

性質10:為完全平方數的充要條件是b為完全平方數。 

證明 充分性:設b為平方數,則 

==(ac) 

必要性:若為完全平方數,=,則 

性質11:如果質數p能整除a,但p的平方不能整除a,則a不是完全平方數。 

證明 由題設可知,a有質因數p,但無因數,可知a分解成標準式時,p的次方為1,而完全平方數分解成標準式時,各質因數的次方均為偶數,可見a不是完全平方數。 

性質12:在兩個相鄰的整數的平方數之間的所有整數都不是完全平方數,即若 

n^2 < k^2 < (n+1)^2 

則k一定不是完全平方數。 

性質13:乙個正整數n是完全平方數的充分必要條件是n有奇數個因數(包括1和n本身)。

如何判斷乙個數是不是乙個完全平方數?

在不使用浮點函式sqrt的情況下,我們有一些比較好的演算法 1.利用恒等式 1 3 5 7 2 n 1 n 2 bool issqrt intn 下面是一些關於完全平方數的數學性質 對排除完全平方數有一定的加速作用 性質1 完全平方數的末位數只能是0,1,4,5,6,9。性質2 奇數的平方的個位數字...

如何判斷乙個數是不是完全平方數

在不使用浮點函式sqrt的情況下,我們有一些比較好的演算法 1.利用恒等式 1 3 5 7 2 n 1 n 2 bool issqrt intn 下面是一些關於完全平方數的數學性質 對排除完全平方數有一定的加速作用 性質1 完全平方數的末位數只能是0,1,4,5,6,9。性質2 奇數的平方的個位數字...

編寫乙個演算法判斷乙個數是不是「快樂數」。

乙個 快樂數 的定義為 對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為1,也可能是無限迴圈但始終變不到1.如果可以變為1,那麼這個數就是快樂數。例項 輸入 19 輸出 true 解釋 1 2 9 2 82 8 2 2 2 68 6 2 8 2 100 1...