हमें एक संख्या N दी गई है। लक्ष्य धनात्मक संख्याओं के क्रमित युग्मों को इस प्रकार खोजना है कि उनके घनों का योग N हो।
निष्पक्ष दृष्टिकोण
1 से N तक सभी संख्याओं को पार करें और जाँचें कि क्या यह एक पूर्ण वर्ग है। अगर मंजिल(sqrt(i))==ceil(sqrt(i)).
तब संख्या एक पूर्ण वर्ग होती है।
कुशल दृष्टिकोण
N के नीचे पूर्ण वर्ग सूत्र का उपयोग करके पाया जा सकता है:फर्श (वर्ग (एन))।
आइए उदाहरणों से समझते हैं।
इनपुट
N=20
आउटपुट
Count of square numbers: 4 Count of non-square numbers: 16
स्पष्टीकरण
Square numbers are 1, 4, 9 and 16. Rest all are non-squares and less than 20.
इनपुट
N=40
आउटपुट
Count of square numbers: 6 Count of non-square numbers: 34
स्पष्टीकरण
Square numbers are 1, 4, 9, 16, 25, 36. Rest all are non-squares and less than 40.
निष्पक्ष दृष्टिकोण
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम पूर्णांक N लेते हैं।
-
फ़ंक्शन वर्गनम्स (int n) n लेता है और n से नीचे की संख्याओं की गिनती देता है जो पूर्ण वर्ग या गैर-वर्ग हैं।
-
प्रारंभिक चर गणना को 0 के रूप में लें।
-
लूप के लिए i=1 से i<=n
. तक का उपयोग करके ट्रैवर्स करें -
यदि फ़्लोर(sqrt(i))==ceil(sqrt(i)), तो संख्या एक पूर्ण वर्ग है इसलिए वृद्धि की गणना करें।
-
सभी लूपों के अंत में गिनती की कुल संख्या होगी जो पूर्ण वर्ग हैं।
-
N-वर्ग वे संख्याएँ होंगी जो गैर वर्ग हैं
उदाहरण
#include <bits/stdc++.h> #include <math.h> using namespace std; int squareNums(int n){ int count = 0; for (int i = 1; i <= n; i++){ if(floor(sqrt(i))==ceil(sqrt(i))) { count++; } } return count; } int main(){ int N = 40; int squares=squareNums(N); cout <<endl<<"Count of squares numbers: "<<squares; cout <<endl<<"Count of non-squares numbers: "<<N-squares; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of square numbers: 6 Count of non-square numbers: 34
कुशल दृष्टिकोण
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम पूर्णांक N लेते हैं।
-
चर वर्ग लें =फर्श (वर्ग (एन))।
-
परिवर्तनीय वर्गों में N के नीचे कई पूर्ण वर्ग होंगे।
-
N-वर्ग, N से नीचे के गैर-वर्गों की संख्या होगी।
उदाहरण
#include <bits/stdc++.h> #include <math.h> using namespace std; int main(){ int N = 40; int squares=floor(sqrt(N)); cout <<endl<<"Count of squares numbers: "<<squares; cout <<endl<<"Count of non-squares numbers: "<<N-squares; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of square numbers: 6 Count of non-square numbers: 34