हमें एक संख्या N दी गई है। लक्ष्य धनात्मक संख्याओं के क्रमित जोड़े ढूंढना है जैसे कि उनके वर्गों का योग N हो।
हम इसे समीकरण a² + b² = N के समाधान ढूंढकर करेंगे। जहां a, N के वर्गमूल से अधिक नहीं है और b की गणना (N-a²) के वर्गमूल के रूप में की जा सकती है।
उदाहरण से समझते हैं
इनपुट
N=100
आउटपुट
(a,b) के जोड़े की संख्या जहां a²+b²=N: 2
व्याख्या
जोड़े होंगे (6,8) और (8,6)। 6²+8²=36+64=100
इनपुट
N=11
आउटपुट
(a,b) के जोड़े की संख्या जहां a²+b²=N: 0
व्याख्या
ऐसे कोई जोड़े संभव नहीं हैं।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम पूर्णांक N लेते हैं।
फ़ंक्शन squareSum(int n) n लेता है और वर्गों का योग n होने वाले क्रमित जोड़े की संख्या लौटाता है।
प्रारंभिक चर count को 0 से आरंभ करें जोड़ों के लिए।
a ढूंढने के लिए फॉर लूप का उपयोग करके पार करें।
a=1 से a<=sqrt(n) तक शुरू करें जो n का वर्गमूल है।
b के वर्ग की गणना n-pow(a,2) के रूप में करें।
b की गणना sqrt(bsquare) के रूप में करें।
यदि pow(b,2)==bsquare। काउंट को 1 से बढ़ाएं।
सभी लूप के अंत में काउंट में ऐसे जोड़ों की कुल संख्या होगी।
काउंट को परिणाम के रूप में लौटाएं।
उदाहरण
#include <bits/stdc++.h> #include <math.h> using namespace std; int squareSum(int n){ int count = 0; for (int a = 1; a <= sqrt(n); a++){ int bsquare=n - (pow(a,2)); int b = sqrt(bsquare); if(pow(b,2)==bsquare){ count++; cout<<a; } } return count; } int main(){ int N =5; cout <<"(a,b) के जोड़े की संख्या जहां a²+b²=N: "<<squareSum(N); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
(a,b) के जोड़े की संख्या जहां a²+b²=N: 122