Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा प्रोग्राम: संख्या के सम गुणनखंडों का योग

उदाहरण

import java.util.*; 
import java.lang.*; 

public class Demo { 
    public static int factorSum(int num) { 
        if (num % 2 != 0) 
            return 0; 
        
        int result = 1; 
        for (int i = 2; i <= Math.sqrt(num); i++) { 
            int count = 0, currentSum = 1; 
            int currentTerm = 1; 
            while (num % i == 0) { 
                count++; 
                num = num / i; 
                if (i == 2 && count == 1) 
                    currentSum = 0; 
                currentTerm *= i; 
                currentSum += currentTerm; 
            } 
            result *= currentSum; 
        } 
        if (num >= 2) 
            result *= (1 + num); 
        return result; 
    } 
    
    public static void main(String argc[]) { 
        int num = 36; 
        System.out.println("संख्या के सम गुणनखंडों का योग है: "); 
        System.out.println(factorSum(num)); 
    } 
}

आउटपुट

संख्या के सम गुणनखंडों का योग है 78

व्याख्या: Demo क्लास में 'factorSum' नामक एक फंक्शन होता है। यह फंक्शन एक संख्या के गुणनखंड ढूंढता है, और सम गुणनखंडों को जोड़ता है और इस मान को आउटपुट के रूप में लौटाता है। मुख्य फंक्शन में, वह संख्या जिसके सम गुणनखंड ढूंढने हैं, परिभाषित की जाती है, और इस संख्या पर फंक्शन को कॉल किया जाता है। प्रासंगिक संदेश कंसोल पर प्रदर्शित होता है।

गणितीय दृष्टिकोण:

यदि n = 2ᵃ × p₁ᵇ¹ × p₂ᵇ² × ... (अभाज्य गुणनखंडन)

सभी गुणनखंडों का योग = (2⁰+2¹+...+2ᵃ) × Π(pᵢ⁰+pᵢ¹+...+pᵢᵇⁱ)

सम गुणनखंडों का योग = (2¹+2²+...+2ᵃ) × Π(pᵢ⁰+pᵢ¹+...+pᵢᵇⁱ)

= (2^(a+1) - 2) × विषम_गुणनखंडों_का_योग

36 के लिए सत्यापन:

36 = 2² × 3²
सभी गुणनखंड: 1, 2, 3, 4, 6, 9, 12, 18, 36
सम गुणनखंड: 2, 4, 6, 12, 18, 36
योग = 2+4+6+12+18+36 = 78 ✓

सरलीकृत कार्यान्वयन:

public static int sumEvenFactors(int n) {
    if (n % 2 != 0) return 0;
    
    int sum = 0;
    for (int i = 2; i <= n; i += 2) {  // केवल सम संख्याएं जांचें
        if (n % i == 0) sum += i;
    }
    return sum;
}

// अनुकूलित: sqrt(n) तक
public static int sumEvenFactorsOptimized(int n) {
    if (n % 2 != 0) return 0;
    int sum = 0;
    for (int i = 2; i * i <= n; i += 2) {
        if (n % i == 0) {
            sum += i;
            int pair = n / i;
            if (pair != i && pair % 2 == 0) sum += pair;
        }
    }
    // n स्वयं सम है तो जोड़ें
    if (n % 2 == 0) sum += n;
    return sum;
}

नोट: मूल कोड अभाज्य गुणनखंडन-आधारित फॉर्मूला का उपयोग करता है जो बड़ी संख्याओं के लिए अधिक कुशल है।

  1. पायथन प्रोग्राम: संख्या के ऑड फैक्टर्स का योग ढूंढें पायथन प्रोग्राम: संख्या के ऑड फैक्टर्स का योग ढूंढें

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट एक नंबर इनपुट n दिए जाने पर, कार्य संख्या के ऑड फैक्टर्स का योग निकालना है। यहां हमें पहले सभी इवन फैक्टर्स को समाप्त करने की आवश्यकता है। सभी इवन फैक्टर्स को हटाने के लिए, हम n को बार-बार तब तक विभाजित

  1. पायथन प्रोग्राम: संख्या के इवन फैक्टर्स का योग ढूंढें पायथन प्रोग्राम: संख्या के इवन फैक्टर्स का योग ढूंढें

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट एक नंबर इनपुट n दिए जाने पर, कार्य संख्या के इवन फैक्टर्स का योग निकालना है। यहां हमें पहले सभी ऑड फैक्टर्स को समाप्त करने की आवश्यकता है। यदि इनपुट नंबर ऑड है तो इसका कोई इवन फैक्टर नहीं है इसलिए सीधे

  1. पायथन प्रोग्राम: संख्या के फैक्टर्स का न्यूनतम योग ढूंढें पायथन प्रोग्राम: संख्या के फैक्टर्स का न्यूनतम योग ढूंढें

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट एक नंबर इनपुट दिए जाने पर, दी गई संख्या के फैक्टर्स का न्यूनतम योग ढूंढें। यहां हम सभी फैक्टर्स और उनके संबंधित योग की गणना करेंगे और फिर उनमें से न्यूनतम ढूंढेंगे। तो संख्या के गुणनफल का न्यूनतम योग ढू