Java判断质数(素数)
生活随笔
收集整理的這篇文章主要介紹了
Java判断质数(素数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目1:判斷101-200之間有多少個(質數)素數,并輸出所有素數。
/*** 判斷素數的方法:用一個數分別去除2到sqrt(這個數),* 如果能被整除,則表明此數不是素數,反之是素數。*/// 方法一 遍歷范圍數 public class Demo {public static void main(String[] args) {// 2,3為素數所以計數初始值為2int count = 2;// 從2到sqrt(i)找出整除數,所以從i = 4開始for (int i = 4; i <= 200; i++) {for (int j = 2; j <= Math.sqrt(i); j++) {// 先遍歷2到sqrt(i)中有沒有可以被整除的,若有則為素數退出當前循環if (i % j == 0) {System.out.println(i + "這個數不是素數!");break;}// i % j != 0判定完畢,但不清楚是否遍歷到sqrt(i)// 所以加一層判定sqrt(i) - j < 1輸出素數i;//else if (Math.sqrt(i)-j < 1) {++count;System.out.println(i + "這個數是素數!");}}}System.out.println("共有" + count + "個素數");} } // 方法二 鍵盤輸入數據進行判斷,創建判斷質數方法 import java.util.Scanner; public class Demo {public static void main(String[] args) {System.out.print("請輸入一個大于1的數判斷是否為質數:");Scanner in = new Scanner(System.in);int n = in.nextInt();if(isPrime(n)) {System.out.println(n+ "是質數!");}else {System.out.println(n+ "不是質數!");}}public static boolean isPrime(int n) {boolean flag = true;// Math.sqrt(n),n的平方根// 質數判斷,在[2,Math.sqrt(n)]范圍內,沒有一個數能整除n,則n是質數for(int i = 2;i <= Math.sqrt(n); i++) {if(n%i == 0) {flag = false;break;}}return flag;} } // 方法三 在遍歷數時創建int flag(進行01判斷) public class Demo {public static void main(String[] args) {int count = 2;for (int i = 4; i <= 200; i++) {int flag = 0;for (int j = 2; j <= Math.sqrt(i); j++) {if (i % j == 0) {System.out.println(i + "不是素數!");// 如果說數第一次取余等于0,則不為素數,count=1flag = 1;break;}}// 從2到sqrt(i)遍歷完成,如果count<1則為素數if (flag < 1) {++count;System.out.println(i + "是素數!");}}System.out.println("一共有" + count + "個素數!");} }總結
以上是生活随笔為你收集整理的Java判断质数(素数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [vue] vue边界情况有哪些?
- 下一篇: 【Java 判断素数的几个方法】简单理解