एक अभाज्य संख्या एक ऐसी संख्या है जो केवल दो संख्याओं और एक से ही विभाज्य होती है। किसी संख्या का गुणनखंड वह संख्या है जो इसे विभाजित कर सकती है।
पहले दस अभाज्य संख्याओं की सूची 2,3,5,7,11,13,17,23,29,31 है।
एक संख्या जो अभाज्य नहीं है वह एक भाज्य संख्या है। एक भाज्य संख्या एक ऐसी संख्या है जिसे दो से अधिक संख्याओं से विभाजित किया जा सकता है।
इसके अलावा अभाज्य और संमिश्र 1 है जो न तो प्रधान है और न ही मिश्रित है क्योंकि इसे केवल स्वयं से विभाजित किया जा सकता है।
यह जांचने के लिए कि कोई संख्या अभाज्य है या मिश्रित है, यह जांचने के लिए कि कोई संख्या अभाज्य है या नहीं, दो शर्तें हैं जिन्हें जांचा जाना चाहिए
1) यह 1 से बड़ी पूर्ण संख्या होनी चाहिए।
2) इसके केवल दो गुणनखंड होने चाहिए अर्थात एक और स्वयं संख्या।
यदि ये दो शर्तें पूरी होती हैं, तो हम कह सकते हैं कि एक संख्या एक अभाज्य संख्या है।
हमारे कार्यक्रम में, हम संख्या को उस संख्या से छोटी प्रत्येक संख्या से विभाजित करने की जाँच करेंगे। यदि दी गई संख्या से छोटी कोई संख्या उसे विभाजित करती है तो वह अभाज्य संख्या नहीं होती है। अन्यथा, यह एक अभाज्य संख्या है।
आइए दो संख्याओं का एक उदाहरण लेते हैं और जांचते हैं कि वे अभाज्य हैं या इस प्रक्रिया का उपयोग नहीं कर रहे हैं।
Input − Number1 − 42 Output − 42 is not a prime number
तर्क - हम 42 को 1 से बड़ी और 42 से छोटी हर संख्या से भाग देंगे। तो,
42/2 =21 यानी 42 2 से विभाज्य है, इसका मतलब 42 एक अभाज्य संख्या नहीं है क्योंकि यह दूसरी संख्या से विभाज्य है।
Input − Number2 − 7 Output − 7 is a prime number
तर्क - हम सात को 1 से बड़ी और 7 से छोटी हर संख्या से भाग देंगे तो,
7, 2 से विभाज्य नहीं है, इसलिए कोड अगले नंबर यानी 3 के लिए जाँच करेगा
7, 3 से विभाज्य नहीं है, इसलिए कोड अगले नंबर यानी 4 की जांच करेगा
7, 4 से विभाज्य नहीं है, इसलिए कोड अगले नंबर की जाँच करेगा अर्थात 5
7, 5 से विभाज्य नहीं है, इसलिए कोड अगले नंबर यानी 6
. की जांच करेगा7, 6 से विभाज्य नहीं है, इसका अर्थ है कि 7 केवल 1 से विभाज्य है और 7 इसका अर्थ है कि 7 एक अभाज्य संख्या है।
उपरोक्त तर्क को देखें कि संख्या 1000 प्लस या 100000 प्लस क्या होगी, तो कार्यक्रम एक लूप के लिए कई पुनरावृत्तियों को लेगा, इस विधि में बहुत अधिक गणना समय लगेगा। इसलिए पुनरावृत्तियों की संख्या को कम करने के लिए उन्हें एक बेहतर तरीका होना चाहिए।
इसका एक अनुकूलित समाधान लूप को केवल आधा ही चलाया जाता है। इसका मतलब है कि यदि संख्या 77 है तो लूप केवल 38 तक चलेगा। इससे आवश्यक पुनरावृत्तियों की संख्या कम हो जाएगी इसलिए हम अपना प्रोग्राम बनाने के लिए इस एल्गोरिथम का उपयोग करेंगे।
उदाहरण
#include <stdio.h> int main() { int num = 33, flag = 0; for(int i=2 ; i < num/2 ; i++) { if(num%i == 0) { printf("%d is not a prime number", num); flag = 1; break; } } if(flag == 0) { printf("%d is a prime number", num); } }
आउटपुट
33 is a prime number