परिचय
एक संख्या को परफेक्ट स्क्वेयर नंबर कहा जाता है यदि उस संख्या का वर्गमूल एक पूर्णांक है। दूसरे शब्दों में, जब वर्गमूल एक पूर्ण संख्या होती है, तो उस संख्या को परफेक्ट स्क्वेयर नंबर कहा जाता है।
हम उस संख्या का वर्गमूल ज्ञात करके और बार-बार i से मिलान करके परफेक्ट स्क्वेयर की जांच कर सकते हैं ताकि सटीक वर्गमूल प्राप्त हो सके। जब वर्गमूल मान को पार कर जाता है, तो यह परफेक्ट स्क्वेयर नंबर नहीं है।
लेकिन यहां प्रयास को कम करने के लिए, हमने बार-बार वर्गमूल की जांच नहीं की है। जैसा कि हम जानते हैं कि परफेक्ट स्क्वेयर नंबर का वर्गमूल एक पूर्णांक होता है, फिर हम वर्गमूल को एक से बढ़ा सकते हैं, और परफेक्ट स्क्वेयर मिलान के लिए जांच सकते हैं।
इनपुट और आउटपुट
इनपुट: जांचने के लिए एक संख्या: 1032 आउटपुट: 1032 परफेक्ट स्क्वेयर नंबर नहीं है।
एल्गोरिदम
isPerfectSquare(num)
इनपुट: संख्या
आउटपुट: सत्य यदि संख्या परफेक्ट स्क्वेयर नंबर है, और वर्गमूल भी प्रिंट करें
Begin
यदि num < 0, तो
बाहर निकलें
sqRoot := 1
sq := sqRoot^2
जब तक sq <= num, करें
यदि sq = num, तो
sqRoot लौटाएं
sqRoot := sqRoot + 1
sq := sqRoot^2
done
अन्यथा त्रुटि लौटाएं
End
उदाहरण (C++ कोड)
#include <iostream>
using namespace std;
int isPerfectSquare(int num) {
if (num < 0)
return -1; // एक ऋणात्मक संख्या वैध वर्ग पद नहीं है
int sqRoot = 1, sq;
while ((sq = (sqRoot*sqRoot)) <= num) {
// जब वर्गमूल का वर्ग संख्या को पार नहीं करता
if (sq == num)
return sqRoot;
sqRoot++; // चूंकि परफेक्ट स्क्वेयर का वर्गमूल हमेशा पूर्णांक होता है
}
return -1;
}
int main() {
int num, res;
cout << "Enter a number to check whether it is perfect square or not: ";
cin >> num;
if ((res = isPerfectSquare(num)) != -1)
cout << num << " is a perfect square number, square root: " << res;
else
cout << num << " is not a perfect square number.";
}
आउटपुट
Enter a number to check whether it is perfect square or not: 1032 1032 is not a perfect square number.