Stefan Ram
2023-01-14 15:33:34 UTC
Newsgroups: de.sci.mathematik,de.comp.lang.java
von Java und soll die nächste Primzahl liefern. Dabei soll
sie keine Primzahl übersehen, aber könnte auch einmal eine
Zahl liefern, die keine Primzahl ist.
Ich wollte diese Methode gerne einmal verwenden, so daß ich
damit auf das folgende Programm zur Ausgabe der ersten
10.000 Primzahlen komme. Da dieses Programm aber "BigInteger"-
Objekte verwendet, obwohl dies hier wohl gar nicht nötig ist,
dürfte es nicht besonders schnell sein.
(Das Hauptprogramm steht weiter unten, hinter "public static
void main".)
public final class Main
{ final static java.math.BigInteger two =
java.math.BigInteger.valueOf( 2 );
final static java.math.BigInteger three =
java.math.BigInteger.valueOf( 3 );
public static boolean two_divides
( final java.math.BigInteger number )
{ return java.math.BigInteger.ZERO.equals
( number.mod( two )); }
public static boolean prime( final java.math.BigInteger number )
{ if( number.equals( two ))return true;
if( two_divides( number ))return false;
for
( java.math.BigInteger i = three;
i.multiply( i ).compareTo( number )< 1;
i = i.add( two ))
if( java.math.BigInteger.ZERO.equals( number.mod( i )))
return false;
return true; }
public static void main( final java.lang.String[] args )
{ final int number_of_primes_to_print = 10_000;
java.math.BigInteger number = java.math.BigInteger.valueOf( 0 );
int number_of_primes_printed = 0;
while( number_of_primes_printed < number_of_primes_to_print )
{ number = number.nextProbablePrime();
if( prime( number ))
{ java.lang.System.out.println( number );
++number_of_primes_printed; }}}}
Newsgroups: de.sci.mathematik,de.comp.lang.java
"Java-Kode" oder "Java-Code"¹
nicht bewertbar.
Die Methode "nextProbablePrime" gehört zur Standardbibliotheknumber = 3;
while(number < 10000) { ...
for(int i = 2; i * i < number; i++) {
if (number%i == 0) { ...
number++;
..
Ist außerhalb des Kontexts und mit den Auslassungen für michwhile(number < 10000) { ...
for(int i = 2; i * i < number; i++) {
if (number%i == 0) { ...
number++;
..
nicht bewertbar.
von Java und soll die nächste Primzahl liefern. Dabei soll
sie keine Primzahl übersehen, aber könnte auch einmal eine
Zahl liefern, die keine Primzahl ist.
Ich wollte diese Methode gerne einmal verwenden, so daß ich
damit auf das folgende Programm zur Ausgabe der ersten
10.000 Primzahlen komme. Da dieses Programm aber "BigInteger"-
Objekte verwendet, obwohl dies hier wohl gar nicht nötig ist,
dürfte es nicht besonders schnell sein.
(Das Hauptprogramm steht weiter unten, hinter "public static
void main".)
public final class Main
{ final static java.math.BigInteger two =
java.math.BigInteger.valueOf( 2 );
final static java.math.BigInteger three =
java.math.BigInteger.valueOf( 3 );
public static boolean two_divides
( final java.math.BigInteger number )
{ return java.math.BigInteger.ZERO.equals
( number.mod( two )); }
public static boolean prime( final java.math.BigInteger number )
{ if( number.equals( two ))return true;
if( two_divides( number ))return false;
for
( java.math.BigInteger i = three;
i.multiply( i ).compareTo( number )< 1;
i = i.add( two ))
if( java.math.BigInteger.ZERO.equals( number.mod( i )))
return false;
return true; }
public static void main( final java.lang.String[] args )
{ final int number_of_primes_to_print = 10_000;
java.math.BigInteger number = java.math.BigInteger.valueOf( 0 );
int number_of_primes_printed = 0;
while( number_of_primes_printed < number_of_primes_to_print )
{ number = number.nextProbablePrime();
if( prime( number ))
{ java.lang.System.out.println( number );
++number_of_primes_printed; }}}}
Newsgroups: de.sci.mathematik,de.comp.lang.java