हमें एक संख्या N दी गई है। लक्ष्य N तक की उन संख्याओं को गिनना है जो पूर्ण वर्ग के साथ-साथ पूर्ण घन भी हैं। उदाहरण के लिए, 1, 64 दोनों पूर्ण वर्ग और पूर्ण घन हैं।
हम किसी संख्या का वर्गमूल निकालने के लिए sqrt() और घनमूल निकालने के लिए cbrt() का उपयोग करेंगे।
आइए उदाहरणों से समझते हैं।
इनपुट - N=100
आउटपुट - पूर्ण वर्ग और घन दोनों वाली संख्याओं की संख्या: 2
व्याख्या - 1 और 64 केवल 1 से 100 तक की संख्याएं हैं जो दोनों पूर्ण वर्ग और घन हैं।
इनपुट - N=5000
आउटपुट - पूर्ण वर्ग और घन दोनों वाली संख्याओं की संख्या: 3
व्याख्या - 1, 64 और 4096 केवल 1 से 5000 तक की संख्याएं हैं जो दोनों पूर्ण वर्ग और घन हैं।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम एक पूर्णांक N लेते हैं।
फंक्शन getCount(int n) N लेता है और N तक की उन संख्याओं की गिनती लौटाता है जो पूर्ण वर्ग और पूर्ण घन दोनों हैं।
प्रारंभिक काउंट को 0 के रूप में लेते हैं।
i=1 से i<=N तक शुरू करते हैं, यदि floor(sqrt(i)) == ceil(sqrt(i)) तो i एक पूर्ण वर्ग है।
अब जांचते हैं कि floor(cbrt(i)) == ceil(cbrt(i)), यदि सही है तो i एक पूर्ण घन भी है। काउंट बढ़ाते हैं।
लूप के अंत में काउंट को परिणाम के रूप में लौटाते हैं।
उदाहरण
#include <bits/stdc++.h> #include <math.h> using namespace std; int getCount(int n){ int count=0; for(int i=1;i<=n;i++){ if(floor(sqrt(i))==ceil(sqrt(i))){ if(floor(cbrt(i))==ceil(cbrt(i))){ count++; } } } return count; } int main(){ int N=100; cout<<endl<<"N तक की संख्याएं जो पूर्ण वर्ग और पूर्ण घन दोनों हैं: "<<getCount(N); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
N तक की संख्याएं जो पूर्ण वर्ग और पूर्ण घन दोनों हैं: 2