查看完整版本: 自己的練習成效不是很好...
頁: [1]

lonely神魂 發表於 2016-12-11 10:07 PM

自己的練習成效不是很好...

(1)請寫個程式輸入一整數 N(2<N<100),並找出小於N的所有質數。所謂質數,就是一個正整數,除了本身和 1 以外並沒有任何其他因子。例如 2,3,5,7 是質數,而 4,6,8,9 則不是。
(2)請寫個程式輸入一整數N(1<n<10000),找出第N個質數,質數的定義:一個大於1個整數,除了1和本身以外沒有其他的因數就叫質數,2為第一個質數。
(3)請寫個程式輸入一整數N(2<n<10000),並找出N的所有質數,所謂的質因數,就是一個正整數既為n的因數又是質數。例如3是225的質因數
謝謝上次各位的解答,這次還請大家多多包涵...
本人還沒學到函數....
還請各位大大詳解..
謝謝


...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

snowflying 發表於 2016-12-12 01:40 AM

不需要用到函數吧,迴圈多跑幾次就行了,10000 不大,直觀做法就行了
找到質數後丟進陣列裡,判斷是不是質數就看目前已存的質數陣列裡頭,有沒有能整除他的數
質數表建好後,前兩題就解決了

第三題用迴圈跑建好的質數陣列,找到能整除他的數
如果有,就再用個迴圈把 N 一直除以那個數
迴圈跑到質數小於等於當前的 N 就行了

fk035372150 發表於 2016-12-20 04:10 AM

質數可以試試看用Sieve of Eratosthenes演算法,作法:
1不是質數,所以從2開始找 2是質數 把2的倍數刪掉
下個是3 把3的倍數刪掉,依此類推,5 . 7 . 11 ...
刪掉之後要找的數字就減少很多,不用每個都拿1開始除到自己
詳細作法可以google Sieve of Eratosthenes演算法 有很多例子 也有講解

cht1902316 發表於 2016-12-25 07:18 PM

本帖最後由 cht1902316 於 2016-12-25 07:25 PM 編輯

好難呀 我也解步出 來 目前還在想解法中 {:38:}{:38:}{:38:}哈哈 誤打誤撞 既然 成功了 耶 聖誕快樂 開心 不過中間空一大格 不過 答案 求出來就ok了吧   耶


頁: [1]