Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्राम जांचने के लिए कि कोई संख्या अभाज्य है या नहीं?


एक अभाज्य संख्या (Prime number) वह संख्या है जो केवल दो संख्याओं से विभाज्य होती है: स्वयं और एक। किसी संख्या का गुणनखंड (factor) वह संख्या है जो इसे विभाजित कर सकती है।

पहली दस अभाज्य संख्याओं की सूची है: 2, 3, 5, 7, 11, 13, 17, 23, 29, 31।

जो संख्या अभाज्य नहीं है वह मिश्रित संख्या (composite number) है। एक मिश्रित संख्या वह संख्या है जिसे दो से अधिक संख्याओं से विभाजित किया जा सकता है।

अभाज्य और मिश्रित के अलावा 1 है जो न तो अभाज्य है और न ही मिश्रित क्योंकि इसे केवल स्वयं से विभाजित किया जा सकता है।

कैसे जांचें कि कोई संख्या अभाज्य है या मिश्रित? किसी संख्या के अभाज्य होने के लिए दो शर्तों की जांच करनी चाहिए:

1) यह 1 से बड़ी पूर्ण संख्या होनी चाहिए।

2) इसके केवल दो गुणनखंड होने चाहिए यानी एक और संख्या स्वयं।

यदि ये दो शर्तें पूरी होती हैं, तो हम कह सकते हैं कि संख्या अभाज्य है।

हमारे प्रोग्राम में, हम संख्या को उससे छोटी प्रत्येक संख्या से विभाजित करके जांचेंगे। यदि दी गई संख्या से छोटी कोई संख्या इसे विभाजित करती है तो यह अभाज्य संख्या नहीं है। अन्यथा, यह एक अभाज्य संख्या है।

आइए दो संख्याओं का उदाहरण लें और जांचें कि क्या वे इस प्रक्रिया का उपयोग करके अभाज्य हैं या नहीं।

Input - Number1 - 42 Output - 42 अभाज्य संख्या नहीं है

तर्क - हम 42 को 1 से बड़ी और 42 से छोटी हर संख्या से विभाजित करेंगे। तो,

42/2 = 21 यानी 42, 2 से विभाज्य है, इसका मतलब 42 अभाज्य संख्या नहीं है क्योंकि यह किसी अन्य संख्या से विभाज्य है।

Input - Number2 - 7 Output - 7 एक अभाज्य संख्या है

तर्क - हम 7 को 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 अभाज्य संख्या नहीं है", num);
            flag = 1;
            break;
        }
    }
    if(flag == 0) {
        printf("%d एक अभाज्य संख्या है", num);
    }
}

आउटपुट

33 एक अभाज्य संख्या है

  1. पायथन में जांचें कि कोई संख्या डाइहेड्रल अभाज्य संख्या है या नहीं पायथन में जांचें कि कोई संख्या डाइहेड्रल अभाज्य संख्या है या नहीं

    मान लीजिए हमारे पास एक संख्या n है। हमें जांचना है कि n डाइहेड्रल अभाज्य है या नहीं। एक संख्या डाइहेड्रल अभाज्य कहलाती है जब वह संख्या स्वयं अभाज्य हो और 7-सेगमेंट डिस्प्ले पर सामान्य या उल्टा (upside-down) दिखाने पर वही संख्या या कोई अन्य अभाज्य संख्या प्रदर्शित हो। उदाहरण के लिए, यदि इनपुट n = 11

  1. पायथन प्रोग्राम: अभाज्य संख्या जांचें पायथन प्रोग्राम: अभाज्य संख्या जांचें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक संख्या दी गई है, हमें जांचना है कि दी गई संख्या अभाज्य संख्या है या नहीं। 1 से बड़ी दी गई धनात्मक संख्या जिसके 1 और संख्या स्वयं के अलावा कोई अन्य गुणनखंड नहीं होते, उसे अभाज्य संख्या कहा जाता है। 2, 3, 5, 7 आदि अभाज्य संख्

  1. - Python का उपयोग करके किसी संख्या की जांच कैसे करें कि वह अभाज्य (prime) है या नहीं?

    इस समस्या के समाधान में उपयोग किया गया सिद्धांत यह है कि दी गई संख्या को 3 से उसके वर्गमूल तक की सभी संख्याओं से विभाजित किया जाए। किसी संख्या का वर्गमूल सबसे बड़ा संभावित गुणनखंड (factor) होता है, जिसके बाद यह जांचने की आवश्यकता नहीं होती कि वह किसी अन्य संख्या से विभाज्य है या नहीं, ताकि यह तय किय