Java中判断素数的五种方法
生活随笔
收集整理的這篇文章主要介紹了
Java中判断素数的五种方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java 中判斷素數我們有很多方法,每種方法時間復雜度也不一樣。今天我匯總了一下,分享給大家。既可以輸出前 50 或 n 個素數,也可以判斷 100 (或 n) 以內的素數。
1. 從 2 到 x-1 測試是否可以整除
Scanner in = new Scanner(System.in);int x = in.nextInt(); boolean isPrime = true; if ( x == 1) {isPrime = false; } for( int i = 2; i< x; i++) {if(x % i ==0){isPrime = false;break;} } if( isPrime) {System.out.println(x +"是素數");} else {System.out.println(x+ "不是素數"); }2. 去掉偶數后,從 3 到 x-1, 每次加 2
改進版,時間復雜度為 O(n/2)
if(x ==1 || x %2 ==0 && x !=2 ) {isPrime = false; } else {for(int i =2; i<x; i +=2){if( x % i == 0){isPrime = false;break;}} } if( isPrime) {System.out.println(x +"是素數");} else {System.out.println(x+ "不是素數"); }3. 2 方法上的改進版,只需到 sqrt(x) 即可以
數學上可以證明,sqrt(x) 即 x 的平方根
時間復雜度為 O(sqrt(n))
4. 找出前 50 個素數
判斷是否能被已知的的且 <x 的素數整除
這個方法可擴展性很強,建議掌握。
5. 用計算機的語言去思考
構造素數表,構造 n 以內的素數表
原理:
好了,以上便是五種判斷素數的方法,第四種和第五種方法要求掌握,相信你能很快學會,一定一定要上手實操,debug 一下,你就懂了。
System.out.println(“給我點個贊!”);
總結
以上是生活随笔為你收集整理的Java中判断素数的五种方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [html] 如何让img自动适应di
- 下一篇: [jQuery] 你知道自定义事件吗?j