演算法 求素數

2021-07-31 21:04:34 字數 504 閱讀 3904

求101到200之間的素數並計算其總數

演算法分析:判斷素數的方法:用乙個數分別去除2到sqrt(這個數),如果能被整除,

則表明此數不是素數,反之是素數。

1.利用判斷素數的方法我們可以用每個數去除以2到sqrt(該數),但是再用迴圈遍歷的過程中會存在乙個很嚴重的問題。那就是101到200之間非素數也會有其不能整除的數,這個問題就導致我們得到的素數是錯誤的

2.解決該問題的方法是我們先求出非素數(因為非素數一定有除了2和本身外的因子)

求出非素數之後,我們定義乙個值。當這個值是1是該數為非素數,所以當這個值為0時我們得到的數就是素數。

**如下:

class prime

} if(count==0)

} system.out.println();

system.out.println("一共有"+sum+"個素數"); }

}public class primenumber 

}

演算法 求素數

這裡我寫了幾個求素數的方法和大家交流一下 進行窮舉 時間複雜度o n private static boolean primer1 int number return true 使用 n 進行計算 時間複雜度o n private static boolean primer2 int number ...

求素數演算法 Java

例如求1000以內的素數 方法一 定義 素數 除了1和它本身以外不再被其他的除數整數。public void printprime int j 2 while j方法二 合數 1 合數定義 指自然數中除了能被1和本身整除外,還能被其他數 0除外 整數的數 2 大於1的自然數,不是質數就是合數。3 如...

演算法 高效求素數

質數又稱素數。指在乙個大於1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數。1不是素數。乙個非素數可以由幾個素數因子相乘得到,這些因子一定小於這個數的開方,因此可通過這個性質求素數 void slow int n if flag cout cout 但這種演算法效率低,複雜度為o n s...