其實可以先把2加到列表, 再由3開始, 每次加2 (因為2以上的偶數都不是質數) SUM其實可以跳過, 只要一出現因數便直接跳到下一數字 1.此題是用【A】除以【1.2.3.4.....到B】,若有可以整除時,就表示【A】不是質數。 2.只要有【【A】除以【1.2.3.4.....到B】,若有可以整除時】,SUM值就加上此時的【B】值,【SUM】值若有0以外的整數,就表示【A】不是質數,因為整除,代表有一個小餘【A】的因數。 3.【【A】除以【1.2.3.4.....到B】,不能整除時】,【SUM】值=0 只要所有的【SUM】值都是0,表示【A】是質數
如何判斷一個自然數是否為質數? 因為如果n不是質數, 就可以表示成兩個小於n的數a, b的乘積, 假設a<=b,則 aXa<= ab = n,於是可得到a<=【根號N】。 所以,如果n不是質數,那麼n一定有一個小於等於的因數。 換句話說, 如果n沒有任何小於等於【根號N】的因數,那麼必定是質數。 其實, 我們只要確定n沒有任何小於等於【根號N】的質因數(為質數的因數),就可以斷定n為質數。為什麼呢? 謝謝 http://calculus.nctu.edu.tw/upload/calculus_web/maple/Site/carnival/number/01.htm 質數 (Prime Number) 兩個自然數m, n,若m可整除n(記為m|n)則m稱為n之因數。 例如:6的因數有1, 2, 3, 6。 大家應該熟悉下面有關自然數的整除性質: 性質1. 1|m, m|m,這裡m是任何整數。 性質2. 如果m|n, n|m,那麼m = n。 性質3.(整數的傳遞性)如果m|n, n|k,則m|k。 性質4. 如果m|p, m|q,那麼m|pq。 性質5. 如果m|p,則m|np, n是任何整數。 一個大於1的自然數,如果除了1和它本身之外,再也沒有其他因數,我們就稱它為質數(prime number)。例如:小於10的質數有2, 3, 5, 7。另外,我們知道除了2之外,所有的質數均為奇數。 1.最小的質數是【2】,除【2】是偶數,其他都是奇數。 2. 2.此題定義: 每次計算都到【B】>【A】的平方根為止 【A】=1-N 【A】除以【B】看餘數是否等於0 【B】逐次加1,直到B】>【A】的平方根為止 【A】/【B】的餘數是0 【SUM】的定義是甚麼?,【SUM】值如何改變? 【A】/【B】的餘數是0或不是0,?? 0.定義: 0.1【A】: 0.2【B】: 0.3【SUM】: 1.按綠旗 2.初始化: 2.1移除質數表所有內容 2.2【A】=2 2.3【B】=0 3.輸入心中最大的整數【答案】,電腦自動找出1到【答案】之間的【質數】 4.重複執行直到質數表最後一項【質數】大於>【答案】 5.【B】=2 6.【SUM】=0 7.重複執行直到【B】>【A】的平方根 7.1如果【A】/【B】的餘數=0, 【SUM】就增加+【B】 如果【A】/【B】的餘數不等於0,【B】增加1,重新算是否【B】>【A】 的平方根 8.如果【SUM】都等於=0 9.【A】就是質數,並將【A】列入【質數表】 10.【A】是質數後,【A】值增加+1,重新算【B】>【A】的平方根 4.1移除質數表最後一項大於>【答案】的【質數】 2.【任何數N】可以寫成【N=AXB>=A平方,【根號N】>=A 為何【N】=0時,【A】就是質數????? SUM是表示所有質因數的和,所以SUM=0,表示a是質數。這是程式的想法。 SUM=N=IS_PRIME= 所以SUM=0表示他只有1和本身的因數,沒有其他因數。 SUM表示所有因數的和(除了1) 2.【A】設為2開始 2.輸入指定整數 3.重複執行直到最後的質數大於輸入的指定答案 3.1.【B】設為2開始 3.2.【N】設為0開始 3.2.【IS_PRIME】設為 TRUE 4.重複執行直到【B】大於【A】的平方根四捨五入值 4.1如果【A】除以【B】後的餘數是0 4.2【N】就增加【B】數值 4.2 【IS_PRIME】就設定為 FALSE 4.3然後【B】加1-------重新算 5.如果【N】=0 5 如果【IS_PRIME】= TRUE 5.1就將【A】加到質數表 5.2然後【A】增加1重新算 6.移除質數表的最後一項質數,因為大於輸入的指定答案