संख्या का सबसे बड़ा अभाज्य गुणनखंड खोजने के लिए जावा कोड निम्नलिखित है:
उदाहरण
import java.io.*;
import java.util.*;
public class Demo{
static long maxPrimeFactors( long val){
long max_prime = -1;
while (val % 2 == 0) {
max_prime = 2;
val >>= 1;
}
for (int i = 3; i <= Math.sqrt(val); i += 2){
while (val % i == 0){
max_prime = i;
val = val / i;
}
}
if (val > 2)
max_prime = val;
return max_prime;
}
public static void main(String[] args){
int val = 148592;
System.out.println("148592 का सबसे बड़ा अभाज्य गुणनखंड है ");
System.out.println(maxPrimeFactors(val));
val = 890654;
System.out.println("890654 का सबसे बड़ा अभाज्य गुणनखंड है ");
System.out.println(maxPrimeFactors(val));
}
}
आउटपुट
148592 का सबसे बड़ा अभाज्य गुणनखंड है 251 890654 का सबसे बड़ा अभाज्य गुणनखंड है 4591
Demo नामक एक क्लास में एक स्टैटिक फंक्शन होता है जो एक मान लेता है, और एक while शर्त परिभाषित की जाती है, जो जांचती है कि क्या मान मॉड्यूलस 2, 0 है। यदि यह 0 है, तो एक वेरिएबल (max_prime) को मान 2 असाइन किया जाता है। अन्यथा, इसे 1 से राइट बिट शिफ्ट किया जाता है। फिर, एक for लूप 3 से मान के वर्गमूल तक एलिमेंट्स पर पुनरावृति करता है, और हर पुनरावृति के बाद 2 से बढ़ाया जाता है।
अब, एक while लूप जांचता है कि क्या मान मॉड्यूलस इटरेटर 0 है। यदि हां, तो एक वेरिएबल (max_prime) को वर्तमान में पुनरावृति किए जा रहे मान को असाइन किया जाता है। मान को इटरेटेड मान से विभाजित किया जाता है। यदि यह मान 2 से बड़ा है, तो यह मान (max_prime) max_prime नामक एक वेरिएबल को असाइन किया जाता है। इसे वापस किया जाता है। मुख्य फंक्शन में, एक इंटीजर मान परिभाषित किया जाता है और फंक्शन को विशिष्ट आर्गुमेंट के साथ कॉल करके सबसे बड़ा अभाज्य गुणनखंड निकाला जाता है।