題外話2:數學資料庫在昨日下午已經換上全新的主頁設計。自己覺得這個設計蠻好的。以往的設計需要網友們scroll down才能見到每一個項目的更新,現在則不用了。而主頁那種顏色的配搭我覺得還真美的。在此要感謝MD的會員Vris花了很多時間去設計這個新主頁。
入正題。上回預告,今次講第二題。
越南Danang的ACM/ICPC Problem C。題目是這樣的:我們稱一組連續k個質數為一個「k質數組」。例如(31,37)是一個「2質數組」,(83,89,97)是一個「3質數組」,而(53,61)則不是「2質數組」,因為53和61之間還有一個質數59。而每一個「k質數組」的重量就是該k個質數中最大的質數和最少的質數之差。例如(11,13,17,19,23)就是一個重量為23-11 = 12的「5質數組」。現在給出a,b符合條件1 < a < b < k 和
就是因為這個結果,對於每個 n 驗證是否質數的時間就變成了 5 lg n。若 n 是一個八位數字,那麼最多大約要做135次,比起上面那個"naive algorithm"的過3000次好太多了。
用了這個Radin-Miller Primality Test後怎樣完成餘下的部分就不算難,有興趣的讀者可以自己想想。
說回比賽。原來我其中一個組員是知道這個primality test的,但他當時覺得用了這個test後程式運行時間仍然太大,所以決定放棄。無言。
沒有留言:
張貼留言