Phương pháp này sẽ lấy số Long
và trả về số LongStream
của số nguyên tố cho bất kỳ số nào được chuyển cho phương thức.Lấy các yếu tố chính trong các luồng Java chức năng bằng một phương thức đơn lẻ?
factors.java
public LongStream factors(long x){
LongStream factorStream = LongStream.range(1, x+1).filter(n -> x%n == 0);
return factorStream;
}
Bằng cách sử dụng các phương pháp trên để tìm các yếu tố phổ biến thứ nhất là ok.
primeFactors.java
public LongStream primeFactors(long x){
LongStream primeFactorStream = factors(x).filter(n -> factors(n).count() == 0);
//doesn't work as factors.java returns a LongStream, which might include non-prime factors, which will not equate to zero.
return primeFactorStream;
}
Tôi hiểu điều này nên được dễ dàng phá vỡ với việc sử dụng một cách đơn giản isPrime() phương pháp với một vị ngữ, nhưng là có một cách để làm điều tương tự cho cho các yếu tố chính nhưng chỉ với một phương pháp duy nhất?
Bạn có thể tránh được bằng cách sử dụng chuỗi BigInteger.valueOf (n) –
@SchiduLuca thú vị, 3 câu trả lời cuối cùng của bạn là về số nguyên tố :) không phải là 'isProbablePrime', cũng là một * có thể xảy ra * nguyên tố? – Eugene
@Eugene thời gian qua tôi đã sai lầm với tham số '' certainty''. Nếu bạn đặt '' 10'' thì nó sẽ cho bạn một xác suất '99,99'') –