इस ट्यूटोरियल में, हम एक ऐसा प्रोग्राम लिखेंगे जो जांचता है कि दी गई संख्या k-रफ या k-जैग्ड संख्या है या नहीं।
वह संख्या जिसका सबसे छोटा अभाज्य गुणनखंड दिए गए k से बड़ा या बराबर हो, उसे k-रफ या k-जैग्ड संख्या कहा जाता है।
आइए इस समस्या को हल करने के चरण देखते हैं।
- संख्याओं n और k को इनिशियलाइज़ करें।
- n के सभी अभाज्य गुणनखंड खोजें और उन्हें एक वेक्टर में स्टोर करें।
- वेक्टर से पहला तत्व प्राप्त करें और इसकी तुलना k से करें ताकि जांच सकें कि n k-रफ या k-जैग्ड संख्या है या नहीं।
उदाहरण
आइए कोड देखते हैं।
#include <bits/stdc++.h> using namespace std; bool isPrime(int n) { for (int i = 2; i * i <= n; i++) { if (n % i == 0) { return false; } } return true; } vector<int> getPrimes(int n) { vector<int> primes; for (int i = 2; i < n; i++) { if (n % i == 0 && isPrime(i)) { primes.push_back(i); } } return primes; } bool isRoughNumber(int n, int k) { vector<int> primes = getPrimes(n); return primes[0] >= k; } int main() { int n = 75, k = 3; if (isRoughNumber(n, k)) { cout << n << " is a " << k << " rough number" << endl; }else { cout << n << " is not a " << k << " rough number" << endl; } return 0; }आउटपुट
यदि आप उपरोक्त प्रोग्राम चलाते हैं, तो आपको निम्न परिणाम मिलेगा।
75 is a 3 rough number
निष्कर्ष
आप वेक्टर में सभी अभाज्य संख्याओं को स्टोर करने से बच सकते हैं। और n का पहला अभाज्य गुणनखंड ढूंढें और इसकी तुलना k से करें ताकि कम स्थान और समय जटिलता के साथ वांछित आउटपुट प्राप्त कर सकें। उपरोक्त के समान विचार को लागू करें लेकिन कम स्थान और समय जटिलता के साथ।
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें कमेंट सेक्शन में लिखें।