該方法將採用Long
並返回傳遞給該方法的任何數字的質數的LongStream
。用單一方法獲取功能性Java流中的主要因素?
factors.java
public LongStream factors(long x){
LongStream factorStream = LongStream.range(1, x+1).filter(n -> x%n == 0);
return factorStream;
}
利用上述方法找到共同的因素首先是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;
}
我明白這應與使用簡單isPrime()方法與謂詞來極易規避,但有一種方法可以做到同樣的事情對於素數因子但只能用單一方法?
您可以通過使用BigInteger.valueOf(N)避免串 –
@SchiduLuca有趣的是,你最後的3個答案是關於素數:)不是'isProbablePrime',很好*可能*素數? – Eugene
@Eugene上次我搞砸了「確定性」參數。如果你把''10''那麼它會給你一個''99.99''的概率) –