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

N तक लॉग की गणना के लिए आवश्यक न्यूनतम लॉग मान खोजें C++ में

हम जानते हैं कि log(x*y) = log(x) + log(y)। तो हम देखेंगे कि 1 से N तक सभी लॉग मानों की गणना के लिए न्यूनतम कितने लॉग मान आवश्यक हैं। तो यदि N 6 है, तो आउटपुट 3 होगा, क्योंकि log(1) से log(6) तक, log(1) को छोड़कर तीन लॉग मान आवश्यक हैं। चूंकि log(1) हमेशा 0 होता है, तो इसे अनदेखा करें, अब log(2) और log(3) के लिए हमें खोजना होगा। उसके बाद log(4) के लिए यह log(2) + log(2) है, लेकिन log(2) का मान ज्ञात है, इसलिए हम इसकी गणना फिर से नहीं करते, log(5) के लिए, हमें गणना करने की आवश्यकता है। तो अब काउंट 3 है, log(6) = log(3) + log(2), वे पहले से ज्ञात हैं, तो काउंट 3 है।

यह समस्या 1 से N तक अभाज्य संख्याओं को खोजने तक सीमित हो सकती है, क्योंकि हम देख सकते हैं कि अभाज्य संख्याओं के लिए, हमें लॉग मानों की स्वतंत्र रूप से गणना करनी होगी। अन्यथा हमें गुणनखंड करना होगा और गणना करनी होगी।

उदाहरण

#include <iostream>
#include <vector>
#define MAX 1000005
using namespace std;

vector<int> prime(MAX, 1);

void seive(int N) {
    prime[0] = prime[1] = 0;
    for (int i = 2; i <= N; i++) {
        if (prime[i] == 1) {
            for (int j = 2; i * j <= N; j++)
                prime[i * j] = 0;
        }
    }
}

int numberOfLogs(int N) {
    int log_count = 0;
    seive(N);
    for (int i = 1; i <= N; i++) {
        if (prime[i] == 1)
            log_count++;
    }
    return log_count;
}

int main() {
    int N = 8;
    cout << "Minimum number of log counts required: " << numberOfLogs(N) << endl;
}

आउटपुट

Minimum number of log counts required: 4

  1. - C++ में कुल n बनाने के लिए आवश्यक न्यूनतम अक्षरों की संख्या

    समस्या कथन एक पूर्णांक n दिया गया है और मान लें a=1, b=2, c=3, ..., z=26। कुल n बनाने के लिए आवश्यक न्यूनतम अक्षरों की संख्या ढूंढें। यदि n=23 तो आउटपुट 1 है यदि n=72 तो आउटपुट 3 है (26 + 26 + 20) एल्गोरिदम 1. यदि n 26 से विभाज्य है तो उत्तर (n/26) है 2. यदि n 26 से विभाज्य नहीं है तो उत्तर (n/26)

  1. - C++ में किसी संख्या के गुणनखंडों का न्यूनतम योग ढूंढना

    यहां हम देखेंगे कि किसी दी गई संख्या के गुणनखंडों का न्यूनतम योग कैसे प्राप्त करें। मान लीजिए एक संख्या 12 है। हम इसे अलग-अलग तरीकों से गुणनखंडित कर सकते हैं: 12 = 12 × 1 (12 + 1 = 13) 12 = 2 × 6 (2 + 6 = 8) 12 = 3 × 4 (3 + 4 = 7) 12 = 2 × 2 × 3 (2 + 2 + 3 = 7) न्यूनतम योग 7 है। हम

  1. - C++ प्रोग्राम किसी भी बीजगणितीय अभिव्यक्ति का न्यूनतम मान खोजने के लिए

    यह किसी भी बीजगणितीय अभिव्यक्ति का न्यूनतम मान खोजने के लिए एक C++ प्रोग्राम है। (x1 + x2 + ... + xa) * (y1 + y2 + ... + yb) रूप का एक बीजगणितीय अभिव्यक्ति और (a + b) इंटीजर्स दिए गए हैं। a नंबर्स और शेष b नंबर्स के सभी संभावित संयोजनों पर विचार करें और उनके मानों की गणना करें, जिससे न्यूनतम मान प्