8/31練習

a121: 質數又來囉

題目:輸入整數a,b,其中(1<=a<=b<=100000000),輸出a,b間共n個質數
思路:一開始的想法是設計一個函式primelist輸出list包含2~b**0.5的所有質數;再來從a~b整數分別除以list的數,若皆無法整除則為質數。
          但發現這方法過慢,原因在於primelist本身找質數方法過慢(一層一層疊上去的for檢查迴圈,也有可能其實有更好的寫法我不會。)。
          後來改良成函式primelist2,他會輸出一個list包含a**0.5以下所有滿足不為2n/3n/n(6n+5)/n(6n+7)的數字。此方法同樣為創造檢查數列(a-b之間元素)而快上許多,不需跑回圈重複檢查。
          再來就是處理一下2的問題(預設跑3n+2),最後用count來計算。若要求輸出所有質數可以創建一個anslist來放資料。
        

a147: Print it all

題目:輸入n個數字,輸出低於該數字從1開始並且非7n的正整數。 
思路:蠻簡單的,就照著輸入並檢查7n。
        

a148: You Cannot Pass?!

題目:輸入n筆資料,每筆資料第一個數字表示將有幾筆成績,輸出yes若平均成績小於等於59;否則輸出no
思路:分別計算並判斷。
        

arrow_circle_left home arrow_circle_right