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

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वीं बदसूरत संख्या ढूंढें।

शुरू 
    uglyNum नामक आकार 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 := next2Mul, next3Mul और 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 
    किया 
    next लौटाएं 
अंत

उदाहरण (C++)

# include<iostream> 
using namespace std; 

int min(int x, int y, int z){ 
    //तीन संख्याओं में सबसे छोटी ढूंढें 
    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]; // बदसूरत संख्याओं को स्टोर करने के लिए 
    int i2 = 0, i3 = 0, i5 = 0; 
    //अगला गुणक 1*2, 1*3, 1*5 के रूप में ढूंढें 
    int next2mul = 2; 
    int next3mul = 3; 
    int next5mul = 5; 
    int next = 1; //प्रारंभ में बदसूरत संख्या 1 है 
    uglyNum[0] = 1; 
    
    for (int i=1; i> n; 
    cout << n << "th Ugly number is: " << getUglyNum(n) << endl; 
}

इनपुट

10

आउटपुट

Enter term: 10 10th Ugly number is: 12

  1. - C++ में मितव्ययी संख्या (Frugal Number)

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

  1. C++ में पेंटाटोप संख्या C++ में पेंटाटोप संख्या

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

  1. - C++ में एडम नंबर जांचना

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