Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ . में एक प्राकृत संख्या के सभी भाजक के भाजक का योग ज्ञात कीजिए

इस समस्या में, हमें एक प्राकृत संख्या N दी जाती है। हमारा कार्य एक प्राकृत संख्या के सभी भाजक के योगफल ज्ञात करना है। ।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

Input : N = 12
Output : 55

स्पष्टीकरण -

The divisors of 12 are 1, 2, 3, 4, 6, 12
Sum of divisors = (1) + (1 + 2) + (1 + 3) + (1 + 2 + 4) + (1 + 2 + 3 + 6) + (1 + 2 + 3 + 4 + 6 + 12) = 1 + 3 + 4 + 7 + 12 + 28 = 55

समाधान दृष्टिकोण

समस्या का एक सरल समाधान N के गुणनखंड का उपयोग करना है। अभाज्य गुणनखंड का उपयोग करके, हम सभी भाजक के भाजक का योग ज्ञात कर सकते हैं। यहां, हम प्रत्येक तत्व का अभाज्य गुणनखंडन पाएंगे।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include<bits/stdc++.h>
using namespace std;
int findSumOfDivisorsOfDivisors(int n) {
   map<int, int> factorCount;
   for (int j=2; j<=sqrt(n); j++) {
      int count = 0;
      while (n%j == 0) {
         n /= j;
         count++;
      }
      if (count) 
         factorCount[j] = count;
   }
   if (n != 1)
      factorCount[n] = 1;
   int sumOfDiv = 1;
   for (auto it : factorCount) {
      int power = 1; 
      int sum = 0;
      for (int i=it.second+1; i>=1; i--) {
         sum += (i*power);
         power *= it.first;
      }
      sumOfDiv *= sum;
   }
   return sumOfDiv;
}
int main() {
   int n = 12;
   cout<<"The sum of divisors of all divisors is "<<findSumOfDivisorsOfDivisors(n);
   return 0;
}

आउटपुट

The sum of divisors of all divisors is 55

  1. C++ में हिडन नंबर खोजने का प्रोग्राम

    इस समस्या में, हम n पूर्णांक मानों से युक्त एक सरणी arr[] हैं। हमारा काम एक C++ में हिडन नंबर खोजने के लिए प्रोग्राम बनाना है । कोड विवरण - एक सरणी के लिए, छिपी हुई संख्या, वह संख्या है जिसे सरणी के प्रत्येक तत्व से घटाए जाने पर योग 0 मिलता है। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट arr

  1. C++ में सभी उप-अनुक्रमों के योग का योग ज्ञात कीजिए

    मान लें कि हमारे पास n तत्वों के साथ एक सरणी A है। हमें सरणी के सभी उपसमुच्चय के योग का कुल योग ज्ञात करना है। तो अगर सरणी A =[5, 6, 8] की तरह है, तो यह − . जैसा होगा सबसेट योग 5 5 6 6 8 8 5,6 11 6,8 14 5,8 13 5,6,8 19 कुल योग 76 चूंकि सरणी में n तत्व हैं, तो हमारे पास 2n उपसमुच्चय (खाली

  1. पहली प्राकृत संख्या ज्ञात कीजिए जिसका भाज्य C++ में x से विभाज्य है

    हमें पहली प्राकृत संख्या ज्ञात करनी है जिसका भाज्य x से विभाज्य है। x उपयोगकर्ता द्वारा दिया जाता है। तो अगर x =16, तो आउटपुट 6 होगा। 6 के रूप में! mod 16 =0. हम इस समस्या को हल करने के लिए सामान्य दृष्टिकोण का उपयोग करेंगे। 1 !, 2 !, ... की क्रमिक रूप से गिनती करें। एन! और x का उपयोग करके विभाज्यता