该方法将采用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''的概率) –