如何快速判斷乙個數可被 7 整除?

時間 2021-05-10 10:26:17

1樓:雲在青天水在瓶

小學奧數題。

假如我們有乙個數字:

(我瞎打的)

把數從後往前三位一段分段

分成746,994,293,198,369,937,391,288,7

然後按序號是奇數或偶數分組

奇陣列:746,293,369,391,7偶數組:994,198,937,288

然後對兩組分別求和

得出奇陣列:1806

偶數組:2417

然後用奇陣列減去偶數組

不夠減怎麼辦?

給被減數加上7的倍數

乾脆加上700,好算

2506-2417=89

89不能被7整除

所以原數不能被7整除

2樓:雄雄

3位數的,可以利用98是7的倍數的關係

100a+10b+c = 2a + 98a + 10b+c也就是說,把百位數*2加到剩下的2位數上,能被7整除即可。

比如算 252,直接算52+4=56能被7整除算995,直接算85+18=113,再算13+2=15不能整除,多了1

所以附近能整除應該是了994,94+18=112,12+2=14兩位數的?(也包括140以內的3位數)

也有方法的,大於70的先減去70,剩的99乘法表解決。

3樓:火星最強指揮官

年僅12歲的Chika Ofili因其新的數學發現而獲得了特別表彰獎,這位小數學家發現了乙個新的除數公式,可以用來快速判斷乙個數能除以7。

4樓:

將這個數字轉化為8進製,再把數的各位相加,得到的數是7的倍數就是7的倍數。

或者50進製也可以。

或者100 0000進製也可以。

比如2884668的8進製是13002074。

1+3+2+7+4=17,不是7的倍數。

50進製是n3Hi

就是24 03 44 19

24+3+44+19=90,不是7的倍數

100 0000進製是

0000002 884668

2+884668=884670

再用50進製就可以了

有人看的話,我證明一下為什麼是8 50 100萬進製可以實現各位相加判斷為7的倍數。

5樓:hipofis

題主所說的快速判斷是這個意思吧,10以內的質數像2和5,乙個數字可以輕易的通過最後一位數來判斷這個數內否被整除,3可以通過各位數字相加來判斷內否被三3整除,題主應該是想找乙個更簡單點的辦法,而不是在這裡除來除去。

6樓:

又是乘法又是減法的,口算很不友好啊(好吧我承認是我笨,算不過來)這裡有乙個只用加法的判斷方法,而且也不算很慢:

比如9356872

先加個28,得9356900

這次運氣好,一次可以舍兩個0,變成93569再加21,得93590

舍乙個0,得9359

再加21,得9380

舍0,938

再加42,得980

可以整除

結合1001的性質,似乎還有化簡的餘地?

7樓:暗金

x = int(input())

if x%7 ==0:

print('嗯!這個數能被7整除')

else:

print('這個數不能被7整除')

8樓:左腳剎車右腳油門

其實這道題方法有很多:我來列舉其中一種

先用兩位數舉個例子:比如98

98可以表示成9×10+8,我們把9×10去掉乙個9×7,剩下的就是9×3+8=35,可以被7整除。

如果是3位數,例如100a+10b+c的形式,那我們只需要把這個數去掉98a+7b,再判斷剩下的數能不能被7整除。所以對於三位數只需判斷2×百位數+3×十位數+個位數能否被7整除即可。

如果是4位數,1000a+100b+10c+d,那只需要去掉10001a+98b+7c即可,對於4位數只需判斷-1×千位數+2×百位數+3×十位數+個位數能否被7整除即可。

5位數的判斷規則是-3×萬位數-千位數+2×百位數+3×十位數+個位數即可。

我來用乙個5位數驗證一下,比如82341

-3×8-2+2×3+3×4+1=-7

最後總結一下規律:對於任意位數的整數,只要按照……2、3、1、-2、-3、-1、2、3、1的順序去乘每位數,再加起來看是否能被7整除即可。

9樓:

一般情況下對於乙個儲存在計算機中的數得到其8進製形式是簡單的.

將原數表示為8進製形式各位求和如果所得被7整除那麼原數亦被7整除其中8換成任何mod7餘1的數皆可. 這在mod7整數環中是顯然的是對我們熟知的判斷整除3 整除9的演算法的推廣.

補充: 對於乙個儲存在計算機中的數判斷其是否被7整除亦是簡單的.

大人時代變了! 丟掉十進位制(

10樓:羊牮

高讚答案不錯。補充乙個:

乙個八進位制數,它的各位數字相加,如果能整除7則該數能整除7。為什麼提八進位制?因為計算機友好啊。而且程式設計經常使用八進位制表示。

11樓:如果想知道

快速判定:

乙個數字能被7(或13)整除,當且僅當其末3位與末3位之前的數字之差能被7(或13)整除。

例子:

,把它分為 和 兩個數字 ,

,因為,所以。

原理:

利用的就是 和 的性質。

比如乙個6位數: 。

拆開來就是:

等於:第一部分能被 (或 )整除,只需考慮後面,即末3位與末3位之前的數字之差。

引申一點,假設不能整除,這裡得到的餘數也就是該數字除以 (或 )的餘數。

比如 , , 除以 餘 ,則 除以 也餘 。

快速練習:

某糧庫裡有三堆袋裝大公尺,已知第一堆有303袋大公尺,第二堆有全部大公尺袋數的五分之一,第三堆有全部大公尺袋數的七分之若干。問糧庫裡共有多少袋大公尺?

A. 2585

B. 3535

C. 3825

D. 4115

從 第三堆有全部大公尺袋數的七分之若干,知道全部袋數是

的公倍數。

只有B,535-3=532,能夠被7整除,得到答案。

12樓:YorkYoung

首先記住一串數字:

1 3 2 6 4 5

它們分別是:

1 10 10^2 10^3 10^4 10^5除以7的餘數,到了10^6又回到1繼續迴圈。

首先考慮只有乙個有效數字的數,比如5000。

它是4位數,5出現在第6個位置,也就是說5和10^5同餘,於是5000和10^(5+3)同餘,我們從5開始往後迴圈數4個數是2,所以5000除以7餘2。

再看更複雜的數34789。

3往後第5個數是5,4往後第4個數是3,7相當於0,8相當於1,後面第二個數是3,最後的9相當於2,加起來是:

5+3+3+2=13,餘6,驗算一下34789-4969*7=6。

13樓:陳炳好

十位減個位之倍,不夠減借7或14(不用還)。個位789可直接視為012。然後百位減所得結果之倍,如此繼續...結果是7的倍數,則原數是7的倍數。

如9356172

7-2x2=3

8-3x2=2 (借7)

6-2x2=2

5-2x2=1

3-1x2=1

9-1x2=7

三位分割槽,相鄰區間互減。或減個位之倍。結果是7的倍數,則原數是7的倍數。

9356872

9+872-356=525 (區間互減)

52-5x2=42 (減個位之倍)

4-2x2=0 (減個位之倍)

計算時可隨時-7-70-700,789換成012。當被減數大於減數時,可直接對換位置。且計算過程可隨時扣除7的倍數。

演算法原理:

--相鄰區間互減1001除7餘0,999999除7餘0,1 000 000m+1 000n+o=999999m+1001n+m-n+o,除7,餘m-n+o。(至於更大的1 000 000 001,可用其他方法-演算法1證明是7的倍數,以此類推。)(因1001和999999同時是11和13的倍數,此法也可用於除11除13時求同餘數。

)--減個位之倍 21除7餘0,21m-2(10m+n)=m-2n,易得,10m+n和m-2n必須同為7的倍數或同不為7的倍數,否則等式無法成立。(類似的,m-9n和m+5n也可用於計算7的倍數。如用於求11的倍數,可使用m-n和m+10n。

求13倍數可用m+4n和m-9n,17可用m-5n,以此類推。)

從右到左,三位分割槽,按231隔位相乘求和,相鄰區間互減。結果同餘。

如009356872

1x9 +2x8+3x7+1x2 - (2x3+3x5+1x6)=21

3x2+1x1=7

優化策略:計算時可隨時-7+7。對於數字0和7,可直接忽略,對於89,可直接-7當成12。(同理,計算3的倍數時,各位求和可直接忽略0369),且計算過程可隨時扣除7的倍數。

1x2 +2x1+1x2 - (2x3+3x5-14+1x6)=-7

演算法原理:1除7餘1,10除7餘3,100除7餘2,1000除7餘6,10000除7餘4,100000除7餘5。再乘10就回到1了。

以21為例,10餘3,2x3+1=7,其他數字以此類推。分析132645,後三個數字如果-7,則為-1 -3 -2,自然得到三位分割槽互減。132倒過來就是231。

前兩位直接除7,餘數接下一位繼續除7,如此繼續。個位789可直接視為012。結果是7的倍數,則原數是7的倍數。

9356172

23/7...餘2

25/7...餘4

46/7...餘4

41/7...餘6

67/7...餘4

42/7...餘0

注:就是普通除法步驟而已。只不過不記商。方案①231的變種。方法雖然是對的,可是該題主介紹方法時存在描述錯誤,舉的兩個如何使用此方法的例子也存在描述錯誤和計算錯誤。

基於此方案糾錯及改進

記數字-2-3-1 231-(231)231速記左231右231

546 231546 231 兩者性質是一樣的

你覺得那個好記,就用那個數字。

首先789可直接視為012

_ __ 9 356 172

0 002 356 102 處理789,補位方便講解

1231231231231數字1粗體表示向

6 231 546 231 546 數字2 均向右數

從最高位開始,對應數字向或向右數n位,之和,與原數同餘。

2對應1,向右數2位為-3

3對應2,向數3位為2

5對應3,向數5位為-1

6對應1,向數6位為-1

1對應2,向右數1位為3

0對應3,向右數0位為3

2對應1,向右數2位為-3

2+3+3-3-1-1-3= 0

0是7的倍數,則9 356 172是7的倍數。

演算法原理:暫無

*因原答主未提供有效證明,效果存疑。(其證明存在計算錯誤)

Mathematica 怎麼判斷乙個數能否由兩個兩位數相乘得到?

cvgmt MemberQ Flatten Table i j, ProductOfTwoDigitNumberQ num Integer Block TwoDigitDivisors Divisors num IntersectingQ num TwoDigitDivisors TwoDigitD...

如何用Python判斷乙個數是否是質數?

藍冰 要求不高的話,就用2 3 6篩選。對於1,2,3三個數字特殊處理 所有的素數都在6的倍數的左側或者右側,也即num 6 1 num 6 5,不滿足者不是素數,滿足者繼續驗證 計算sqrt num 從5,11,17,23.開始驗證,每次驗證i和i 2,一旦整除,不是素數 多次篩的時候可以打表。解...

如何用c語言判斷乙個數為小數?

魔某人 include include const char result 2 int main intNumType char Str bool dot false 小數點 char p Str charCh p if Ch Ch for Ch p p dot true elseif 9 Ch 0...