Java是一種廣泛使用的編程語言,有著強大的數據處理能力。其中,素數計算也是Java能勝任的任務之一。這里,我們將介紹如何使用Java求解100以內素數和的問題。
//定義一個函數isPrime,判斷是否為素數 public static boolean isPrime(int num){ if (num<= 1) { return false; } for (int i = 2; i<= Math.sqrt(num); i++) { if (num % i == 0){ return false; } } return true; } public static void main(String[] args) { int sum = 0; for (int i = 2; i< 100; i++) { if(isPrime(i)) { sum += i; } } System.out.println("100以內素數和為:"+sum); }
代碼中,我們首先定義了一個判斷素數的函數isPrime。它的原理是根據素數的定義,判斷這個數能否被1和本身以外的數整除。
接下來,在main函數中,我們使用循環從2開始逐個判斷100以內的數是否為素數。如果是,就把它累加到sum中。最后輸出結果即可。
上述代碼的時間復雜度為O(nlogn),相比傳統的暴力枚舉法要高效得多。同時,我們還可以通過一些優化方式來提高代碼效率,如:跳過偶數,只判斷奇數;用帶備忘錄的動態規劃記憶已經判斷過的素數等。