您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關java怎么判斷一個數是否是素數的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
質數定義為在大于1的自然數中,除了1和它本身以外不再有其他因數,這樣的數稱為質數。
import java.util.Scanner; public class TestWork { public static void main(String[] args) { boolean isPrime = true; Scanner sc = new Scanner(System.in); System.out.println("請輸入一個正整數"); int num = sc.nextInt(); if (num > 0) { int k = (int) Math.sqrt(num);//k為num的正平方根,取整數 for (int i = 2; i <= k; i++) { if (num % i == 0) { isPrime = false;//不是素數 break; } } } if (isPrime) { System.out.println(num + "是素數"); } else { System.out.println(num + "不是素數"); } } }
輸出1~1000之間的素數
偶數肯定不是素數,所以遞增的時候可以以奇數的形式遞增,再在奇數中去掉非質數的數。
public class TestWork { public static void main(String[] args) { boolean isPrime = true; int PrimeCount=0; for (int i = 3; i <= 1000; i+=2) { int k = (int) Math.sqrt(i);//k為num的正平方根,取整數 isPrime = true; for (int j = 2; j <= k; j++) { if (i % j == 0) { isPrime = false;//不是素數 break; } } if (isPrime) { PrimeCount++; System.out.print(i+"\t"); if(PrimeCount%5==0){ System.out.println(); } } } } }
質數又稱素數。一個大于1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數。
如:2,3,5,7,11…
//1-100之間的質數--------1 public class PrimeNumber { public static void main(String[] args) { for(int i=2;i<=100;i++) { boolean flag=true; for(int j=2;j<i;j++) { if(i%j == 0) { flag=false; break; } } if(flag) { System.out.println("質數:i= "+i); } } } }
//1-100之間的質數--------2 public class PrimeNumber { public static void main(String[] args) { for(int i=2;i<=100;i++) { for(int j=2;j<=i;j++) { if(i%j==0 && i!=j) { break; } if(j==i) { System.out.println("質數:i= "+i); } } } } }
//1-100之間的質數--------3 public class PrimeNumber { public static void main(String[] args) { for(int i=2;i<=100;i++) { int j=2; while(i%j != 0 ) { j++; } if(j==i) { System.out.println("質數:i= "+i); } } } }
//1-100之間的質數--------4 public class PrimeNumber { public static void main(String[] args) { for(int i=2;i<=100;i++) { int j=2; for(;j<=i/2;j++) { if(i%j==0) { break; } } if(j==i/2+1) { System.out.println("質數:i= "+i); } } } }
public class PrimeNumber { public static void main(String[] args) { int count=0; for(int i=2;i<=100;i++) { int j=2; for(;j<=(int)Math.sqrt(i);j++) { if(i%j==0) { break; } } if(j==(int)Math.sqrt(i)+1) { System.out.println("質數:i= "+i); count++; } } System.out.println("質數個數:count= "+count); } }
public class PrimeNumber { public static void main(String[] args) { int count1 = 0, count2 = 0; for (int i = 2; i <= 100; i++) { for (int j = 2; j <= Math.sqrt(i); j++) { if (i % j != 0) { //不能被整除累計一次 count1++; } } // 轉為int的類型 int num2 = (int) Math.sqrt(i); //如果累計次數num2 - 1個數相等則為素數 if (count1 == (num2 - 1) { System.out.println("質數: " + i); count2++; } //找到素數后count1再初始化為0 count1 = 0; } // 統計素數個數 System.out.println("質數個數:count2= "+count2); } }
感謝各位的閱讀!關于“java怎么判斷一個數是否是素數”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。