題目是這樣說的,有一個函數叫做rad
,它是去運算一個整數的所有的質因數的乘積。題目要問的就是請我們對1~100000
中的數字用rad的大小做排序(如果rad一樣大,就再用數字的大小去做排序)之後,問排序後第10000的數字是誰?
妳被迷惑了嗎?
其實這題我們並不用去真的對數字去做排序,甚至也不用有個大質數表來做質因數分解:p
我的想法就是去推廣 Sieve of Eratosthenes,但是不是將數字給刪除,反倒是將它建成一個表,去記錄她被哪些質數給整除過,然後在用rad的數字去建一個表,將rad值一樣的數字存入,最後在去算第10000的數字是誰就好了:D
附上程式碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
這樣子就可以很快的算出答案了:D