1. 程式人生 > >Java 求1-100以內的所有素數,判斷一個數是不是素數。Java程式碼實現附測試結果圖

Java 求1-100以內的所有素數,判斷一個數是不是素數。Java程式碼實現附測試結果圖

質數(prime number)又稱素數,有無限個。
質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數的數稱為質數。

小師弟問了我個這麼個聯絡題,雖然看似簡單,但是,大家都覺得簡單的東西,沒必要分享的話,那初學者,不是很痛苦嗎?
所以,我就給小師弟示範了一下。方便初學者,看看怎麼寫程式碼。
程式碼內部的細節(都是針對沒開始工作,或者剛剛工作的哥們):
1,模組化思想。
先拆分需求,本來讓你求1-100以內的素數,你不能上來就幹,先拆分先考慮怎麼確定一個數是不是素數,然後再複用到所有。
不能把方法堆到一起,不然怎麼複用程式碼。
2,注意註釋。
就算是自己的測試程式碼,你好歹也寫個註釋,這樣即使過了三個月,再看程式碼,也是分分鐘就能明白。不要覺得簡單,就懶得註釋
就算引數的註釋省略了,但是你這個方法的作用還是得說明一下。
好像聽說過:
寫的好的程式碼,三個月後,回頭看,還能看懂,還知道是自己寫的,而不是,哇,這是我寫的程式碼嗎!!!!
3,注意引數命名。


從類名到方法名,再到變數名,都不能隨意取名,叫個a,b,c,d,啥的,太隨意了,老師講課這麼幹,為了省事,少敲幾下鍵盤。
但是,新手們,還是從最基礎的地方做起吧,這樣你出來到專案上,就不會取一些笑掉大牙的命名啦。
關於這個命名,不要嫌棄他長,重點是意思清楚明白。見名知意。是最好的。
4,程式碼格式化。
一些新人,包括老師,以及一些工作了些年的從業人員,他們可能就沒有這個格式化程式碼的習慣。
只要你養成習慣了,這個就不用別人說,你自己寫完就會format一下的。而且,這麼一整,你的程式碼看著也是乾淨整潔。
看著就舒爽。

下面看程式碼吧:

package com.lxk.test;

import java.util.ArrayList;
import java.util.List;

/**
 * 求1-100的素數測試
 * <p>
 * Created by lxk on 2017/3/2
 */
public class PrimeNumberTest {
    public static void main(String[] args) {
        int n = 100;
        System.out.println(getPrimeNumberToN(n));
    }

    /**
     * 得到1到n之間的素數,存到一個ArrayList集合
     */
    private static List<Integer> getPrimeNumberToN(int n) {
        List<Integer> result = new ArrayList<>();
        for (int i = 1; i < n + 1; i++) {
            if (numberIsPrime(i)) {
                result.add(i);
            }
        }
        return result;
    }

    /**
     * 判斷一個數是不是素數:只能被1和本身整除
     * <p>
     * 說明:從2開始除,不需要到n,也就是迴圈條件是 < n 就可以,這之間只要被整除了,那麼他就不是素數了
     */
    private static boolean numberIsPrime(int n) {
        for (int i = 2; i < n; i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
}

執行結果圖:


一道小小的題目,溼胸我總結這麼多,是不是太囉嗦了。
當然了,這都是一些些小的建議。
不積跬步,無以至千里啊。百層高臺起於壘土的嘛。這道理都簡單,但是實現卻不易。