बैश क्या है?
Bash (बॉर्न अगेन शेल) एक कमांड लाइन इंटरप्रेटर और स्क्रिप्टिंग भाषा है जो लिनक्स/यूनिक्स सिस्टम के लिए डिफ़ॉल्ट शेल है।
अभाज्य संख्या
एक संख्या जिसके केवल दो गुणनखंड हों: 1 और स्वयं। उदाहरण: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29...
एल्गोरिदम
- 2 से n/2 तक लूप करें
- यदि कोई संख्या n को विभाजित करती है → अभाज्य नहीं
- यदि कोई भाजक नहीं मिला → अभाज्य
बैश स्क्रिप्ट
#!/bin/bash
read -p "संख्या दर्ज करें: " number
i=2
flag=0
while [ $i -le $((number / 2)) ]; do
if [ $((number % i)) -eq 0 ]; then
flag=1
break
fi
i=$((i + 1))
done
if [ $flag -eq 1 ]; then
echo "संख्या अभाज्य नहीं है"
else
echo "संख्या अभाज्य है"
fi
बेहतर संस्करण (वर्गमूल तक जांच)
#!/bin/bash
read -p "संख्या दर्ज करें: " number
if [ $number -lt 2 ]; then
echo "अभाज्य नहीं"
exit 0
fi
if [ $number -eq 2 ]; then
echo "अभाज्य"
exit 0
fi
if [ $((number % 2)) -eq 0 ]; then
echo "अभाज्य नहीं"
exit 0
fi
# केवल विषम संख्याओं की जांच करें वर्गमूल तक
limit=$(echo "sqrt($number)" | bc)
for ((i=3; i<=limit; i+=2)); do
if [ $((number % i)) -eq 0 ]; then
echo "अभाज्य नहीं"
exit 0
fi
done
echo "अभाज्य"
नमूना आउटपुट
संख्या दर्ज करें: 23 संख्या अभाज्य है संख्या दर्ज करें: 24 संख्या अभाज्य नहीं है
बैश अंकगणित नोट्स
$((...))- अंकगणित विस्तार((...))- अंकगणित कमांड (C-जैसा सिंटैक्स)bc- फ्लोटिंग पॉइंट गणना के लिएlet- अंकगणित मूल्यांकन
वन-लाइनर संस्करण
# त्वरित जांच
is_prime() { local n=$1; [ $n -lt 2 ] && return 1; [ $n -eq 2 ] && return 0; [ $((n%2)) -eq 0 ] && return 1; for((i=3;i*i<=n;i+=2)); do [ $((n%i)) -eq 0 ] && return 1; done; return 0; }
is_prime 23 && echo "अभाज्य" || echo "अभाज्य नहीं"