如何在Java中检查数字是否为素数? 如何生成和打印第一个 N 质数?
已发表: 2020-08-08
什么是质数?
根据定义,大于 1 且只有 1 个本身的除数的 Number 称为Prime number
。 其他数字称为合Composite Number
。
我们来看看:2、3、5、7、11、13是素数。
如果您有以下任何问题,那么您来对地方了。
- Java中的质数程序
- 检查数字是否为素数的 Java 程序
- 用于显示 1 到 200 的素数的 Java 程序
- 如何在Java中确定质数
- 在 Java 中生成素数
- 打印前 500 个素数的总和
前段时间我写了一篇关于如何打印斐波那契数列的文章。 在本教程中,我们将讨论以下几点:
- Java中确定素数的两种不同方法
- 在 Java 中生成素数的最佳方法
让我们开始吧:
- 创建类 CrunchifyIsPrimeAndGeneratePrime.java
- 创建 crunchifyIsPrimeNumber(int) 来检查数字是否为素数?
- 创建 crunchifyIsPrimeNumberMethod2(int) 来检查数字是素数还是不使用差异方法
- crunchifyGeneratePrimeNumbers(int) 生成介于 2 和提供的数字之间的素数
如何在Java中显示前N个素数?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
package crunchify . com . tutorials ; import java . util . Scanner ; /** * @author Crunchify.com * How to Check if Number is Prime or not in Java? How to Generate first N Prime Numbers in Java? */ public class CrunchifyIsPrimeAndGeneratePrime { public static void main ( String [ ] args ) { System . out . println ( crunchifyIsPrimeNumber ( 11 ) ) ; System . out . println ( crunchifyIsPrimeNumber ( 22 ) ) ; System . out . println ( crunchifyIsPrimeNumber ( 37 ) ) ; System . out . println ( crunchifyIsPrimeNumber ( 7 ) ) ; System . out . println ( "\n" ) ; System . out . println ( crunchifyIsPrimeNumberMethod2 ( 3 ) ) ; System . out . println ( crunchifyIsPrimeNumberMethod2 ( 43 ) ) ; System . out . println ( crunchifyIsPrimeNumberMethod2 ( 23 ) ) ; System . out . println ( crunchifyIsPrimeNumberMethod2 ( 88 ) ) ; // Here 120 is an upper limit crunchifyGeneratePrimeNumbers ( 120 ) ; System . out . print ( "\n\n------ Let's find out if number is Prime or not ------ \n" + "Enter Number: " ) ; Scanner myInput = new Scanner ( System . in ) ; System . out . println ( crunchifyIsPrimeNumber ( myInput . nextInt ( ) ) ) ; // Java Program to display first n prime numbers crunchifyPrintFirstNPrimeNumbers ( 25 ) ; } private static String crunchifyIsPrimeNumber ( int crunchifyNumber ) { System . out . println ( "Prime check started for number: " + crunchifyNumber ) ; if ( crunchifyNumber == 1 ) { return "1 is not a Prime number..." ; } // Loop starts from 2 for ( int i = 2 ; i < = crunchifyNumber / 2 ; i ++ ) { if ( crunchifyNumber % i == 0 ) { return crunchifyNumber + " ==> is not a Prime Number" ; } } return crunchifyNumber + " ==> is a Prime Number" ; } // Another way to check if Number is Prime public static String crunchifyIsPrimeNumberMethod2 ( int crunchifyNumber ) { System . out . println ( "Prime check started for number: " + crunchifyNumber ) ; if ( crunchifyNumber == 1 ) { return "1 is not a Prime number..." ; } int limit = ( int ) Math . sqrt ( crunchifyNumber ) ; for ( int i = 2 ; i < = limit ; i ++ ) { if ( crunchifyNumber % i == 0 ) { return crunchifyNumber + " ==> is not a Prime Number" ; } } return crunchifyNumber + " ==> is a Prime Number" ; } /* Generate Prime Numbers */ public static void crunchifyGeneratePrimeNumbers ( int crunchifyUpperLimit ) { System . out . println ( "\n------ Generating all prime number between 2 to " + crunchifyUpperLimit + " ------ " ) ; for ( int i = 2 ; i < crunchifyUpperLimit ; i ++ ) { boolean crunchifyIsPrime = true ; // check to see if the number is prime for ( int j = 2 ; j < i ; j ++ ) { if ( i % j == 0 ) { crunchifyIsPrime = false ; break ; } } // print the number if ( crunchifyIsPrime ) System . out . print ( i + " " ) ; } } /* Java Program to display first n prime numbers */ public static void crunchifyPrintFirstNPrimeNumbers ( int crunchifyFirstNNumber ) { System . out . println ( "\n------ Generating first " + crunchifyFirstNNumber + " Prime Numbers ------ " ) ; int crunchifyNumber = 3 ; int crunchifyCheck = 1 ; for ( int counter = 2 ; counter < = crunchifyFirstNNumber ; ) { for ( int incrementer = 2 ; incrementer < = Math . sqrt ( crunchifyNumber ) ; incrementer ++ ) { if ( crunchifyNumber % incrementer == 0 ) { crunchifyCheck = 0 ; break ; } } if ( crunchifyCheck ! = 0 ) { crunchifyPrint ( crunchifyNumber ) ; counter ++ ; } crunchifyCheck = 1 ; crunchifyNumber ++ ; } } private static void crunchifyPrint ( int crunchifyNumber ) { System . out . println ( crunchifyNumber + " " ) ; } } |
在 Eclipse IDE 或 IntelliJ IDEA 中运行 Java 程序,您应该会看到如下所示。

输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
/ Library / Java / JavaVirtualMachines / jdk - 15.jdk / Contents / Home / bin / java - javaagent : / Applications / IntelliJ IDEA . app / Contents / lib / idea_rt . jar = 60282 : / Applications / IntelliJ IDEA . app / Contents / bin - Dfile . encoding = UTF - 8 Prime check started for number : 11 11 == > is a Prime Number Prime check started for number : 22 22 == > is not a Prime Number Prime check started for number : 37 37 == > is a Prime Number Prime check started for number : 7 7 == > is a Prime Number Prime check started for number : 3 3 == > is a Prime Number Prime check started for number : 43 43 == > is a Prime Number Prime check started for number : 23 23 == > is a Prime Number Prime check started for number : 88 88 == > is not a Prime Number ------ Generating all prime number between 2 to 120 ------ 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 ------ Let ' s find out if number is Prime or not ------ Enter Number : 33 Prime check started for number : 33 33 == > is not a Prime Number ------ Generating first 25 Prime Numbers ------ 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 Process finished with exit code 0 |