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

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

जैसा कि हम जानते हैं कि log(x*y) =log(x) + log(y). तो हम देखेंगे कि 1 से N तक के सभी लॉग मानों की गणना करने के लिए न्यूनतम लॉग मानों की क्या आवश्यकता है। इसलिए यदि N 6 है, तो आउटपुट 3 होगा, जैसे लॉग (1) से लॉग (6) तक, वहाँ हैं लॉग (1) को छोड़कर तीन लॉग मानों की आवश्यकता है। चूंकि लॉग (1) हमेशा 0 होता है, फिर इसे अनदेखा करें, अब लॉग (2) और लॉग (3) के लिए, हमें खोजना होगा। उसके बाद लॉग (4) के लिए यह लॉग (2) + लॉग (2) है, लेकिन लॉग (2) का मान ज्ञात है, इसलिए हम इसे फिर से गणना नहीं करते हैं, लॉग (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 बनाने के लिए आवश्यक अक्षरों की न्यूनतम संख्या ज्ञात करना है If n = 23 then output is 1 If n = 72 then output is 3(26 + 26 + 20) एल्गोरिदम 1. If n is divisible by 26 then answer is (n/26) 2. If n is not divisible b

  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 + x3 +... + xa) * (y1 + y2 + ... + yb) और (a + b) के रूप का एक बीजीय व्यंजक ) पूर्णांक दिए गए हैं। एक संख्या और शेष बी संख्याओं के सभी संभावित संयोजनों पर विचार करें और उनके मूल्यों की गणना करें, जिससे न्यूनतम मूल्य