Primzahlkonzept
Eine Primzahl, auch Primzahl genannt, bezieht sich auf eine natürliche Zahl größer als 1, die nicht durch andere natürliche Zahlen außer 1 und der ganzen Zahl selbst teilbar ist (sie kann auch als Zahl mit nur zwei Faktoren definiert werden: 1 und sich selbst). ).
Die kleinste Primzahl ist 2, die auch die einzige gerade Zahl unter den Primzahlen ist; die anderen Primzahlen sind alle ungerade Zahlen. Es gibt unendlich viele Primzahlen, daher gibt es keine größte Primzahl.
1: Lösen Sie gemäß der Definition:
Es ist auch der dümmste Weg und hat eine geringe Effizienz:
package test.ms;public class FindPrime { // Primzahl zwischen 1 und 1000 finden;public static void main(String[] args) { printPrime(1000);}public static void printPrime(int n){for(int i = 2; i < n ; i++){int count = 0;for(int j = 2 ; j<=i; j++){if(i%j==0){count++;}if(j==i & count == 1){System.out.print(i+" ");}if(count > 1){break; }}}}}
2: Quadratwurzel:
package test.ms;public class Prime { public static void main(String[] args) {for(int j = 2; j<1000; j++){if(m(j)){System.out.print(j+" ");}}}public static boolean m(int num){for(int j = 2; j<=Math.sqrt(num);j++){if(num%j == 0){return false;}}true zurückgeben;}}
3: Muster finden (Auszug aus einer Forumsdiskussion)
Die kleinste Primzahl ist 2, die auch die einzige gerade Zahl unter den Primzahlen ist; die anderen Primzahlen sind alle ungerade Zahlen. Es gibt unendlich viele Primzahlen, daher gibt es keine größte Primzahl.
package test.ms;import java.util.ArrayList;import java.util.List;public class Primes { public static void main(String[] args) { // Primzahlen finden List<Integer> primes = getPrimes(1000); // Ausgabeergebnis für (int i = 0; i < primes.size(); i++) { Integer prime = primes.get(i); System.out.printf("%8d", prime); if (i % 10 == 9) { System.out.println(); } } } /** * Finde alle Primzahlen innerhalb von n* * @param n Range* * @return alle Primzahlen innerhalb von n*/ private static List<Integer> getPrimes(int n) { List<Integer> result = new ArrayList<Integer>(); result.add(2); for (int i = 3; i <= n; i += 2) { if (!divisible(i, result)) { result.add(i } } return result; ** * Bestimmen Sie, ob n teilbar ist * * @param n Die zu beurteilende Zahl * @param primes Eine Liste mit Primzahlen * * @return Gibt true zurück, wenn n durch eine beliebige Primzahl teilbar ist. */ private static boolean divisible(int n, List<Integer> primes) { for (Integer prime : primes) { if (n % prime == 0) { return true }}
Die erste und zweite Methode sind sehr einfach:
Die dritte Methode veranschaulicht die Eigenschaften einer Primzahl: Von allen Primzahlen ist nur 2 eine gerade Zahl.
Eine Zahl ist keine Primzahl, wenn sie durch die vorherige Primzahl teilbar ist.