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

सी ++ में बदसूरत संख्या

कुरूप संख्याएँ वे संख्याएँ हैं जिनके अभाज्य गुणनखंड 2, 3 या 5 हैं। 1 से 15 तक 11 कुरूप संख्याएँ 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15 हैं। संख्याएँ 7 , 11, 13 बदसूरत नहीं हैं क्योंकि वे अभाज्य हैं। 14 नंबर बदसूरत नहीं है क्योंकि इसके अभाज्य गुणनखंड में 7 आएगा। तो मान लीजिए हम 10वीं बदसूरत संख्या की जांच करना चाहते हैं। मान 12 होगा।

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

एल्गोरिदम

getUglyNumbers(n)

इनपुट - पदों की संख्या।

आउटपुट - nवें बदसूरत नंबर खोजें।

Begin
   define array named uglyNum of size n
   i2 := 0, i3 := 0, i5 := 0
   next2mul := 2, next3mul := 3, next5Mul := 5
   next := 1
   ugluNum[0] := 1
   for i := 1 to n, do
      next := minimum of next2Mul, next3Mul and next5Mul
      uglyNum[i] := next
      if next = next2Mul, then
         i2 := i2 + 1
         next2mul := uglyNum[i2] * 2
      if next = next3Mul, then
         i3 := i3 + 1
         next3mul := uglyNum[i3] * 3
      if next = next5Mul, then
         i5 := i5 + 1
            next5mul := uglyNum[i5] * 5
   done
   return next
End

उदाहरण (C++)

# include<iostream>
using namespace std;
int min(int x, int y, int z){ //find smallest among three numbers
   if(x < y){
      if(x < z)
         return x;
      else
         return z;
   }
   else{
      if(y < z)
         return y;
      else
         return z;
   }
}
int getUglyNum(int n){
   int uglyNum[n]; // To store ugly numbers
   int i2 = 0, i3 = 0, i5 = 0;
   //find next multiple as 1*2, 1*3, 1*5
   int next2mul = 2;
   int next3mul = 3;
   int next5mul = 5;
   int next = 1; //initially the ugly number is 1
   uglyNum[0] = 1;
   for (int i=1; i<n; i++){
      next = min(next2mul, next3mul, next5mul); //find next ugly number
      uglyNum[i] = next;
      if (next == next2mul){
         i2++; //increase iterator of ugly numbers whose factor is 2
         next2mul = uglyNum[i2]*2;
      }
      if (next == next3mul){
         i3++; //increase iterator of ugly numbers whose factor is 3
         next3mul = uglyNum[i3]*3;
      }
      if (next == next5mul){
         i5++; //increase iterator of ugly numbers whose factor is 5
         next5mul = uglyNum[i5]*5;
      }
   }
   return next; //the nth ugly number
}
int main(){
   int n;
   cout << "Enter term: "; cin >> n;
   cout << n << "th Ugly number is: " << getUglyNum(n)<< endl;
}

इनपुट

10

आउटपुट

Enter term: 10
10th Ugly number is: 12

  1. C++ में मितव्ययी संख्या

    इस समस्या में, हमें एक धनात्मक पूर्णांक N दिया जाता है। हमारा कार्य यह जाँचने के लिए एक प्रोग्राम बनाना है कि दी गई संख्या मितव्ययी संख्या है या नहीं। मितव्ययी संख्या - एक संख्या जिसके अंकों की संख्या दी गई संख्या के अभाज्य गुणनखंड में अंकों की संख्या से अधिक है। उदाहरण − 625, संख्या 625 का अभाज्

  1. सी++ पेंटाटोप नंबर

    पास्कल के त्रिभुज में एक पंचकोण संख्या को पाँचवीं संख्या के रूप में वर्णित किया गया है। अब, जैसा कि आप जानते हैं, यह पांचवीं संख्या है, तो इसका मतलब है कि हमारे पास पास्कल के त्रिकोण में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है। पास्कल त्रिभुज की

  1. C++ में एडम नंबर

    इस खंड में हम देखेंगे कि एक प्रोग्राम कैसे लिखा जाता है जो यह जांच सकता है कि दी गई संख्या एडम नंबर है या नहीं। कोड में गोता लगाने से पहले आइए देखें कि एडम नंबर क्या है? आदम संख्या एक संख्या है मान लीजिए n, तो यदि n का वर्ग और n के विपरीत का वर्ग एक-दूसरे के विपरीत हों, तो वह संख्या आदम संख्या होती