यह विधि Long
में ले जाएगी और विधि को पारित किए गए किसी भी अंक के लिए प्राइम संख्याओं के LongStream
लौटाएगी।एक विधि के साथ कार्यात्मक जावा धाराओं में प्रमुख कारक प्राप्त करना?
factors.java
public LongStream factors(long x){
LongStream factorStream = LongStream.range(1, x+1).filter(n -> x%n == 0);
return factorStream;
}
उपरोक्त विधि का उपयोग आम कारण खोजने के लिए पहले ठीक है।
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 (एन) का उपयोग करके तार से बच सकते हैं जरूरत नहीं –
@SchiduLuca दिलचस्प, आपके पिछले 3 उत्तरों primes के बारे में हैं :) यह नहीं है कि 'isProbablePrime', अच्छी तरह से एक * संभावित * प्रधान? – Eugene
@Eugene पिछली बार जब मैंने 'निश्चितता 'पैरामीटर के साथ गड़बड़ की। यदि आप '' 10'' डालते हैं तो यह आपको '99.99'' संभाव्यता देगा) –