寒窗苦讀十年,一朝金榜題名,苦練進程編碼,就為一鳴驚人。
說的似乎...有點誇張.....也就高中聯考題名...後面只是個小小考啦。
整個升高中前暑假,每天苦練Basic,其實只是純萃興趣,壓根沒想過,會有那麼一天,有機會派上用場,直到第一次的工藝課考試。省中的課程通常非升學相關科目,都是安排其他用途,這次的工藝課考的是BASIC,其實也出乎我意料之外。
BASIC題目不外乎,從1+2+...100這類考題,倒是其中一題,吸引了我的注意,因為不是上機考,所以除了那唯一的一次Apple II 邂逅之後,我很訝異全校所有一年級生,有幾個寫得出答案來?
題目是,假設有任意一個正整數,請證明它是質數?
看到題目,我有點愣住!整個暑假寫過練習無數,還真沒想到會有這種題目,這題是出的讓我感到很無助!仔細想想國中數學所學,忽然我發現,其實是有教過這種解法的,關鍵是A=B*C,這是再解因式分解的那篇,換言之,所有正整數,如果是可以因式分解出非1的因數的情況,則B或C一定小於A的開根號值!
所以,我就以這個方式寫出我認為的程式碼。
大致如下:
10 input a
20 for i = 2 to int(a^0.5)
30 if A / i = int(A/i) then goto 100 ‘找出可整除者,當時好像不知道mod
40 next i
50 print a;”是質數"
60 end
100 print a; “不是質數"
110 end
其實,大可以直接比對2~A1,可以被整除的就不是質數了,但基於不敷衍的心態,我還是把最少迴圈數的寫法來交卷,以10000來講,平方根只有100,你是迴圈跑9998次,還是跑99次就好呢?後來想想,搞不好老師看不懂還會給錯呢?分數多少我不記得了,倒是我這個解法,在後來"第三波"雜誌依稀看過。
[開發技術組]全文閱讀
http://ithelp.ithome.com.tw/ironman6/player/yafuu168/dev/1
[鐵人人生組]全文閱讀
http://ithelp.ithome.com.tw/ironman6/player/yafuu168/life/1
高中時寫的答案到現在還記得!
您真是記憶力過人丫~
謝謝支持。
年紀大了~
所以開始回憶小時候的事,長大後的事轉個身就忘了,
也就這些雞毛蒜皮事還記得哩。