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