Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

किसी संख्या के अद्वितीय अभाज्य गुणनखंडों का गुणनफल खोजने के लिए C/C++ प्रोग्राम?

इस भाग में हम देखेंगे कि हम किसी संख्या के अद्वितीय अभाज्य गुणनखंड का गुणनफल प्रभावी तरीके से कैसे प्राप्त कर सकते हैं। एक संख्या n =1092 है, हमें इसके अद्वितीय अभाज्य गुणनखंडों का गुणनफल प्राप्त करना है। 1092 के अभाज्य गुणनखंड 2, 2, 3, 7, 13 हैं। तो अद्वितीय अभाज्य गुणनखंड {2, 3, 7, 13} हैं, गुणनफल 546 है। इस समस्या को हल करने के लिए, हमें इस नियम का पालन करना होगा -

  • जब संख्या 2 से विभाज्य हो, तो 2 को गुणनफल से गुणा करें, और संख्या को 2 से बार-बार विभाजित करें, फिर अगले 2s को अनदेखा कर दिया जाएगा।

  • अब संख्या विषम होनी चाहिए। अब संख्या के 3 से वर्गमूल तक, यदि संख्या वर्तमान मान से विभाज्य है, तो गुणनखंड को गुणनफल में गुणा करें, और संख्या को वर्तमान संख्या से विभाजित करके संख्या को परिवर्तित करें फिर जारी रखें। आगे ऊपर की तरह अनदेखा कर दिया जाता है

  • और अंत में यदि संख्या 2 से बड़ी है, तो वह 1 नहीं है, इसलिए शेष संख्या को गुणा करें।

आइए बेहतर विचार प्राप्त करने के लिए एल्गोरिथम देखें।

एल्गोरिदम

uniquePrimeProduct(n)

begin
   prod := 1
   if n is divisible by 2, then
      prod := prod * 2
      n := n / 2
   end if
   while n is divisible by 2, do
      n := n / 2
   done
   for i := 3 to √𝑛, increase i by 2, do
      if n is divisible by i, then
         prod := prod * i
         n := n / i
      end if
      while n is divisible by i, do
         n := n / i
      done
   done
   if n > 2, then
      prod := prod * n
   end if
end

उदाहरण

#include<stdio.h>
#include<math.h>
int uniquePrimeProduct(int n){
   int i, prod = 1;
   if(n % 2 == 0){
      prod *= 2;
      n = n/2;
   }
   while(n % 2 == 0){//skip next 2s
      n = n/2;
   }
   for(i = 3; i <= sqrt(n); i=i+2){ //i will increase by 2, to get only odd numbers
      if(n % i == 0){
         prod *= i;
         n = n/i;
      }
      while(n % i == 0){ //skip next i's
         n = n/i;
      }
   }
   if(n < 2){
      prod *= n;
   }
   return prod;
}
main() {
   int n;
   printf("Enter a number: ");
   scanf("%d", &n);
   printf("Product of prime factors: %d", uniquePrimeProduct(n));
}

आउटपुट

Enter a number: 1092
Product of prime factors: 546

  1. किसी संख्या के विषम गुणनखंडों का योग ज्ञात करने के लिए C++ प्रोग्राम

    एक सकारात्मक पूर्णांक के साथ दिया गया है और कार्य किसी संख्या के विषम कारकों को उत्पन्न करना और दिए गए विषम कारकों का योग ज्ञात करना है। उदाहरण Input-: number = 20 Output-: sum of odd factors is: 6 Input-: number = 18 Output-: sum of odd factors is: 13 तो, परिणाम =1 + 5 =6 नीचे दिए गए कार्यक्रम

  1. पायथन प्रोग्राम में किसी संख्या के अद्वितीय अभाज्य गुणनखंडों का गुणनफल

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन एक संख्या n को देखते हुए, हमें इसके सभी उपलब्ध अद्वितीय अभाज्य कारकों का गुणनफल खोजना होगा और उसे वापस करना होगा। उदाहरण के लिए Input: num = 11 Output: Product is 11 स्पष्टीकरण यहां, इनपुट संख्या 11 है जिसमें केवल 1 प

  1. किसी संख्या के अद्वितीय अभाज्य गुणनखंडों के उत्पाद के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन - एक संख्या n को देखते हुए, हमें इसके सभी उपलब्ध अद्वितीय अभाज्य कारकों का गुणनफल खोजना होगा और उसे वापस करना होगा। उदाहरण के लिए, Input: num = 11 Output: Product is 11 Explanation: Here, the input number is 11 havin