Java判断是否为素数
生活随笔
收集整理的這篇文章主要介紹了
Java判断是否为素数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
質數(又稱素數),是指在大于1的自然數中,除了1和它本身外,不能被其他自然數整除(除0以外)的數稱之為素數(質數)。
//判斷是否為素數,1不是素數。public static boolean isPrime (int n){if(n ==1 || n==0){return false;}for(int i=2;i<n;i++){//在2 到 n-1 之間有數可以整除,不是素數。if(n%i ==0){return false;}}return true;}上述判斷方法,明顯存在效率極低的問題。對于每個數n,其實并不需要從2判斷到n-1,我們知道,一個數若可以進行因數分解,那么分解時得到的兩個數一定是一個小于等于sqrt(n),一個大于等于sqrt(n),據此,上述代碼中并不需要遍歷到n-1,遍歷到sqrt(n)即可.
public static boolean isPrime (int n) {if (n == 1 || n == 0) {return false;}for (int i = 2; i*i <= n; i++) {if (n % i == 0) {return false;}}return true;}時間復雜度由O(n),降到了O( sqrt(n) )
————————————————
總結
以上是生活随笔為你收集整理的Java判断是否为素数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [html] html5哪些标签可以优
- 下一篇: Java UDP编程