हमें एक संख्या 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