在acm競賽中我們有時會遇到整除取模的問題,對於整除問題,我們有下列性質:
(1)1與0的特性:
1是任何整數的約數,即對於任何整數a,總有1|a.
0是任何非零整數的倍數,a≠0,a為整數,則a|0.
(2)若乙個整數的末位是0、2、4、6或8,則這個數能被2整除。
(3)若乙個整數的數字和能被3整除,則這個整數能被3整除。
(4) 若乙個整數的末尾兩位數能被4整除,則這個數能被4整除。
(5)若乙個整數的末位是0或5,則這個數能被5整除。
(6)若乙個整數能被2和3整除,則這個數能被6整除。
(7)若乙個整數的個位數字截去,再從餘下的數中,減去個位數的2倍,如果差是7的倍數,則原數能被7整除。如果
差太大或心算不易看出是否7的倍數,就需要繼續上述「截尾、倍大、相減、驗差」的過程,直到能清楚判斷為止。
例如,判斷133是否7的倍數的過程如下:13-3×2=7,所以133是7的倍數;又例如判斷6139是否7的倍數的過程如
下:613-9×2=595 , 59-5×2=49,所以6139是7的倍數,餘類推。
(8)若乙個整數的未尾三位數能被8整除,則這個數能被8整除。
(9)若乙個整數的數字和能被9整除,則這個整數能被9整除。
(10)若乙個整數的末位是0,則這個數能被10整除。
(11)若乙個整數的奇位數字之和與偶位數字之和的差能被11整除,則這個數能被11整除。11的倍數檢驗法也可用上
述檢查7的「割尾法」處理!過程唯一不同的是:倍數不是2而是1!
(12)若乙個整數能被3和4整除,則這個數能被12整除。
(13)若乙個整數的個位數字截去,再從餘下的數中,加上個位數的4倍,如果差是13的倍數,則原數能被13整除。
如果差太大或心算不易看出是否13的倍數,就需要繼續上述「截尾、倍大、相加、驗差」的過程,直到能清楚判斷為
止。 (14)若乙個整數的個位數字截去,再從餘下的數中,減去個位數的5倍,如果差是17的倍數,則原數能被17整除。如果差太大或心算不易看出是否17的倍數,就需要繼續上述「截尾、倍大、相減、驗差」的過程,直到能清楚判斷為止。
(15)若乙個整數的個位數字截去,再從餘下的數中,加上個位數的2倍,如果差是19的倍數,則原數能被19整除。如果差太大或心算不易看出是否19的倍數,就需要繼續上述「截尾、倍大、相加、驗差」的過程,直到能清楚判斷為止。
(16)若乙個整數的末三位與3倍的前面的隔出數的差能被17整除,則這個數能被17整除。
(17)若乙個整數的末三位與7倍的前面的隔出數的差能被19整除,則這個數能被19整除。
(18)若乙個整數的末四位與前面5倍的隔出數的差能被23(或29)整除,則這個數能被23整除。
Python and和or的特殊性質
在python 中,and 和 or 執行布林邏輯演算,如你所期待的一樣。但是它們並不返回布林值,而是返回它們實際進行比較的值之一。類似c 裡面的 和 的短路求值 在布林環境中,0 none為假 其它任何東西都為真。但是可以在類中定義特定的方法使得類例項的演算值為假。and例項 a and b b ...
Flash的特殊性
flash並不是我們想的那是是random accessed.對其進行寫入資料和讀取資料都是得按照一定的規則。比較明顯的一點就是必須先erase再program。否則會產生exception。一般情況下,也就是意味著只有原來的資料是0x.ffff.時才能對其進行程式設計。經過實測,成功。按照一定的規...
23 整除的尾數
問題描述 乙個整數,只知道前幾位為a,不知道末二位,被另乙個整數b除盡了,那麼該數的末二位該是什麼呢?輸入說明 第一行為t,以下t行,每行為一組測試資料,包含兩個整數a,b 0輸出說明 對應每組資料,將滿足條件的所有尾數在一行內輸出,格式見範例。同組資料的輸出,其每個尾數之間空一格,行首與行尾沒有空...