Diese Methode übernimmt Long
und gibt LongStream
der Primzahlen für jede an die Methode übergebene Zahl zurück.
faktoren.java
%Vor%Die Verwendung der oben genannten Methode zum Auffinden gemeinsamer Faktoren ist ok .
primeFactors.java
%Vor%Ich verstehe, dass dies leicht mit der Verwendung einer einfachen isPrime () -Methode mit einem Prädikat umgangen werden kann, aber gibt es eine Möglichkeit, dasselbe für Primfaktoren aber nur mit einer einzigen Methode?
Sie können die Methode BigInteger
isProbablePrime()
verwenden, um zu überprüfen, ob Ihre Faktoren prim sind:
Für primeFactors(26).forEach(System.out::println);
gibt es 2 13
zurück.
Ohne memoization und Verwendung von Was für sehr großes x wichtig ist.
Diese Lösung wiederholt jedoch den Test von LongStream
könnten Sie einige einfache Leistungsverbesserungen wie für einen Strom von Primfaktoren anwenden, die einen Strom von Zahlen bis zu x / 2 : x % n == 0
für jedes n in jedem von 2 Streams, was nach Memoisierung verlangt.
Tags und Links java lambda functional-programming java-stream primes