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

C++ में दी गई श्रेणी में K विषम भाजक वाली संख्याएँ ज्ञात कीजिए


इस समस्या में, हमें तीन पूर्णांक मान, L, R, और k दिए गए हैं। हमारा कार्य किसी दी गई श्रेणी में K विषम भाजक वाली संख्याएँ ज्ञात करना है। हम श्रेणी [एल, आर] में संख्याओं की संख्या का पता लगा रहे हैं जिनमें बिल्कुल k भाजक हैं।

हम 1 और संख्या को ही भाजक के रूप में गिनेंगे।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

a = 3, b = 10, k = 3

आउटपुट

2

स्पष्टीकरण

Numbers with exactly 3 divisors within the range 3 to 10 are
4 : divisors = 1, 2, 4
9 : divisors = 1, 3, 9

समाधान दृष्टिकोण

समस्या का एक सरल समाधान k भाजक की गणना करना है। तो, k एक विषम संख्या होने के लिए (जैसा कि समस्या में दर्शाया गया है), संख्या को एक पूर्ण वर्ग होना चाहिए। इसलिए, हम केवल पूर्ण वर्ग संख्या के लिए भाजक की संख्या की गणना करेंगे (इससे संकलन समय की बचत होगी)। और यदि भाजक की संख्या k में है, तो हम संख्यागणना में 1 जोड़ देंगे।

हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,

उदाहरण

#include<bits/stdc++.h>
using namespace std;
bool isPerfectSquare(int n) {
   int s = sqrt(n);
   return (s*s == n);
}
int countDivisors(int n) {
   int divisors = 0;
   for (int i=1; i<=sqrt(n)+1; i++) {
      if (n%i==0) {
         divisors++;
         if (n/i != i)
            divisors ++;
      }
   }
   return divisors;
}
int countNumberKDivisors(int a,int b,int k) {
   int numberCount = 0;
   for (int i=a; i<=b; i++) {
      if (isPerfectSquare(i))
         if (countDivisors(i) == k)
            numberCount++;
   }
   return numberCount;
}
int main() {
   int a = 3, b = 10, k = 3;
   cout<<"The count of numbers with K odd divisors is "<<countNumberKDivisors(a, b, k);
   return 0;
}

आउटपुट

The count of numbers with K odd divisors is 2

  1. C++ में दी गई लंबाई की मिश्रित संख्याओं की श्रेणी ज्ञात कीजिए

    मान लीजिए कि हमारे पास एक संख्या n है। हमें धनात्मक पूर्णांकों का परिसर ज्ञात करना है, जहाँ परिसर की सभी संख्याएँ संयुक्त हैं, और परास की लंबाई n है। यदि एक से अधिक रेंज हैं, तो किसी एक रेंज को प्रिंट करें। भाज्य संख्या वह संख्या होती है जिसमें 1 और स्वयं के अलावा कम से कम एक भाजक होता है। चूंकि परा

  1. C++ में दिए गए अंतर के साथ एक जोड़ी खोजें

    विचार करें कि हमारे पास एक सरणी A है, n विभिन्न तत्व हैं। हमें सरणी A से एक युग्म (x, y) ज्ञात करना है, ताकि x और y के बीच का अंतर दिए गए अंतर d के समान हो। मान लीजिए कि तत्वों की एक सूची A =[10, 15, 26, 30, 40, 70] की तरह है, और दिया गया अंतर 30 है, तो जोड़ी होगी (10, 40) और (30, 70) इस समस्या को

  1. C++ में दिए गए सूचकांकों के साथ N फाइबोनैचि संख्याओं की GCD ज्ञात कीजिए

    यहाँ हमें दिए गए सूचकांकों के साथ n फाइबोनैचि पदों की GCD ज्ञात करनी है। तो सबसे पहले हमें अधिकतम सूचकांक प्राप्त करना होगा, और फाइबोनैचि शब्द उत्पन्न करना होगा, कुछ फाइबोनैचि शब्द इस प्रकार हैं:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ….. सूचकांक शुरू होता है 0 से। तो तत्व 0th . पर सूचकांक 0 है। यदि हमें स