Prime Number Program
Prime number क्या है
Prime number 1 से बड़ी पूर्ण संख्या है जो सिर्फ़ 1 और खुद से पूरा भाग होती है। उदाहरण: 2, 3, 5, 7, 11। 6 जैसा number prime नहीं क्योंकि वो 2 और 3 से भी भाग होता है। Primes जाँचना classic loop-और-condition अभ्यास है।
Number prime है या नहीं जाँचना
num = 13
is_prime = True
if num < 2:
is_prime = False
else:
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
print("Prime" if is_prime else "Not prime")
हम मान लेते हैं number prime है, फिर उसे 2 से उसके square root तक हर number से भाग देने की कोशिश करते हैं। अगर कोई पूरा भाग दे, तो वो prime नहीं और हम break से रुक जाते हैं।
Dry run
| i | 13 % i == 0? | क्या हुआ |
|---|---|---|
| 2 | 13%2 = 1 (नहीं) | आगे बढ़ो |
| 3 | 13%3 = 1 (नहीं) | √13 ≈ 3.6, loop यहीं तक। कोई भाजक नहीं मिला |
| is_prime अब भी True → 13 is Prime | ||
Prime सिर्फ़ 1 और खुद से भाग होता है। हम 2 से √n तक जाँचते हैं — अगर कोई number पूरा भाग दे, तो वो prime नहीं। √13 तक कोई भाजक नहीं मिला, इसलिए 13 prime है। सिर्फ़ √n तक जाँचना काफ़ी और तेज़ है।
सिर्फ़ square root तक loop क्यों
अगर n का कोई भाजक √n से बड़ा हो, तो उसका एक मेल खाता छोटा भाजक √n से नीचे भी होगा — जो हम पहले ही ढूँढ चुके होते। तो square root से आगे जाँचने की ज़रूरत नहीं। 100 के लिए, इसका मतलब 99 के बजाय 10 तक जाँचना, जो कहीं तेज़ है।
Range में primes print करना
for num in range(2, 20):
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
print(num, end=" ")
एक बाहरी loop range के हर number में जाता है, और वही prime जाँच अंदर चलती है। पास होने वाले numbers एक line पर print होते हैं।
आम गलतियाँ
- 1 को prime मानना। 2 से नीचे के numbers prime नहीं — पहले
num < 2जाँचिए। - √num के बजाय num तक loop। यह चलता तो है पर बहुत धीमा।
- Range पर
+ 1भूलना।int(num ** 0.5) + 1इस्तेमाल कीजिए ताकि square root खुद जाँचा जाए। breakन इस्तेमाल करना। भाजक मिलते ही रुक जाइए — जाँचते रहने की ज़रूरत नहीं।
सारांश
- Prime 1 से बड़ा number है जो सिर्फ़ 1 और खुद से भाग होता है।
- जाँच को 2 से
√numतक भाग दीजिए। - अगर कोई number पूरा भाग दे, तो prime नहीं —
breakसे रुकिए। - सिर्फ़ square root तक जाँचना इसे तेज़ बनाता है।
- 1 prime नहीं है; 2 सबसे छोटा prime है।
आगे, आज़माइए factorial program, या और अभ्यास कीजिए Python loops से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Prime number क्या है?
क्या 1 prime number है?
हम सिर्फ़ square root तक क्यों जाँचते हैं?
sqrt(n) तक जाँचना काफ़ी है और program को बहुत तेज़ बनाता है।