高階題73 純粹合數

2021-10-04 10:36:09 字數 1773 閱讀 8179

73 純粹合數

問題描述 :

明明的爸爸是一位數學家,明明受他爸爸的影響從小就喜歡數學,經常向他爸爸學習或請教數學問題。

一天,明明問他爸爸什麼是合數,明明的爸爸回答說:「首先,合數都是大於1的整數,其次合數是除了1和其本身外,還能被至少乙個其他自然數整除的數,例如『4』這個數,它除了能被1和4整除外,還能被2整除,因此『4』就是合數;但是『3』就不是合數,因為3只能被1和3這兩個數整除,因此『3』不是合數。」

聰明的明明很快就理解了他爸爸的意思,於是又接著問他爸爸:「那什麼又是純粹合數呢?」明明的爸爸接著回答說:「乙個合數,去掉最高位,剩下的數是0或仍是合數;再去掉剩下的數的最高位,剩下的數還是0或合數;這樣反覆,一直到最後剩下的一位數仍為0或合數;我們把這樣的數稱為純粹合數。

例如『100』這個數,它能被1、2、4、5、10、20、50、100整除,因此100是個合數,我們去掉它的最高位,剩下的數是0(其實剩下的應該是00,但是前置0對乙個整數來說沒有意義,因此前置0被捨去,就剩下個位數上的0),因此『100』是乙個純粹合數。有趣的是,100是最小的乙個三位純粹合數。

再例如『104』這個數,104能被1、2、8、13、26、52、104整除,所以104是個合數;我們去掉它的最高位後剩下4,4能被1、2、4整除,所以4也是合數,所以『104』是乙個純粹合數。

但是『101』就不是純粹合數,因為『101』只能被1和101這兩個數整除。」

明明對他爸爸的回答很滿意,於是自己動手從100開始尋找純粹合數,他一共找到了100個純粹合數,調皮的明明開始反過來考爸爸了,問他爸爸能否告訴他第2個大於等於100的純粹合數是哪個?第3個大於等於100的純粹合數又是哪個?……明明的爸爸被這個突如其來的問題給難住了,他無法立刻回答出來,於是請求你的幫助,幫助他回答明明的這個問題。

明明的問題可以歸結為:根據乙個正整數n,求出從100開始從小到大的第n個純粹合數。

輸入說明 :

你寫的程式需要從標準輸入裝置(通常為鍵盤)中讀入多組測試資料,每組測試資料僅佔一行,每行僅包括乙個正整數n(1 ≤ n ≤ 100)。每組測試資料與其後一組測試資料之間沒有任何空行,第一組測試資料前面以及最後一組測試資料後面也都沒有任何空行。

輸出說明 :

對於每一組測試資料,你寫的程式需要計算出一組相應的運算結果,並將每組運算結果依次寫入到標準輸出裝置(通常為啟動該程式的文字終端,例如windows中的命令列終端)中。每組運算結果為乙個整數,即從100開始從小到大的第n個純粹合數。每組運算結果單獨形成一行資料,其行首和行尾都沒有任何空格,每組運算結果與其後一組運算結果之間沒有任何空行,第一組運算結果前面以及最後一組運算結果後面也都沒有任何空行。

輸入範例 :102

1輸出範例 :

124104

100

#include

#include

int nb[

100]

;int

function

(int number)

}return0;

}int

pure

(int start)

res[i++]=

'0';

//前置為0 (乾掉高位)

}return1;

}int

main()

printf

("%d\n"

, i);}

return0;

}

小結:1.學會了sscanf()函式的用法與sprintf()函式的用法

將字元轉換為數字簡直棒極了

2.如何去掉數字高位(字元前置為0)

去掉數字低位(除以10)

73 純粹合數

73 純粹合數 問題描述 明明的爸爸是一位數學家,明明受他爸爸的影響從小就喜歡數學,經常向他爸爸學習或請教數學問題。一天,明明問他爸爸什麼是合數,明明的爸爸回答說 首先,合數都是大於1的整數,其次合數是除了1和其本身外,還能被至少乙個其他自然數整除的數,例如 4 這個數,它除了能被1和4整除外,還能...

組合數學高階

更新提示 正文 迴圈排列 從 n 個元素中選出 m 個排成圓圈的方案數,相當於線性排列時固定第乙個數的方案。乙個迴圈排列可以對應 m 個線性排列,進而可以得到迴圈排列的計算公式 cir frac frac 把 n 1 個物品放入 n 個盒子中,那麼至少有乙個盒子包含兩個或兩個以上的物品。證明 反證法...

組合數學八題

題目來自朱全民老師ppt 題目如下 樣例 n 3 m 2 a 給定n個不同的球,放進m個不同的盒子,盒子允許為空,有多少種方案?樣例輸出 8 b 給定n個不同的球,放進m個不同的盒子,盒子不允許為空,有多少種方案?樣例輸出 6 c 給定n個不同的球,放進m個相同的盒子,盒子允許為空,有多少種方案?樣...