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

C प्रोग्राम: जांचें कि संख्या अपने अंकों के योग से विभाज्य है या नहीं

समस्या विवरण

एक संख्या n दी गई है, जांचें कि क्या यह अपने अंकों के योग से विभाज्य है।

उदाहरण

संख्याअंकों का योगविभाज्य?आउटपुट
555+5=1055%10=5 ≠ 0नहीं
121+2=312%3=0हाँ
606+0=660%6=0हाँ
1321+3+2=6132%6=0हाँ
1231+2+3=6123%6=3नहीं

एल्गोरिदम

  1. मूल संख्या को temp में संग्रहीत करें
  2. sum = 0 आरंभ करें
  3. जब तक n > 0:
    • digit = n % 10
    • sum += digit
    • n /= 10
  4. जांचें: temp % sum == 0

C प्रोग्राम

#include <stdio.h>
#include <stdbool.h>

bool divisible_by_digit_sum(long n) {
    long temp = n;
    int sum = 0;
    
    while (n > 0) {
        sum += n % 10;
        n /= 10;
    }
    
    return (temp % sum == 0);
}

int main() {
    long num;
    printf("संख्या दर्ज करें: ");
    scanf("%ld", &num);
    
    if (num <= 0) {
        printf("धनात्मक पूर्णांक दर्ज करें\n");
        return 1;
    }
    
    if (divisible_by_digit_sum(num))
        printf("हाँ\n");
    else
        printf("नहीं\n");
    
    return 0;
}

नमूना आउटपुट

संख्या दर्ज करें: 55
नहीं

संख्या दर्ज करें: 12
हाँ

हार्शड संख्या (Niven संख्या)

ऐसी संख्याएं जो अपने अंकों के योग से विभाज्य होती हैं, हार्शड संख्याएं (या निवेन संख्याएं) कहलाती हैं।

पहली कुछ हार्शड संख्याएं:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 18, 20, 21, 24, 27, 30, 36, 40, 42, 45, 48, 50, 54, 60...

विस्तार: रेंज में हार्शड संख्याएं खोजें

void find_harshad_in_range(int start, int end) {
    printf("%d से %d तक हार्शड संख्याएं:\n", start, end);
    for (int i = start; i <= end; i++) {
        int sum = 0, temp = i;
        while (temp > 0) {
            sum += temp % 10;
            temp /= 10;
        }
        if (sum > 0 && i % sum == 0)
            printf("%d ", i);
    }
    printf("\n");
}

जटिलता

  • समय: O(log₁₀ n) - अंकों की संख्या
  • स्थान: O(1)

संबंधित अवधारणा: मॉरन संख्या

यदि n / अंकों का योग एक अभाज्य संख्या है, तो n एक मॉरन संख्या है।

उदाहरण: 132 → योग=6, 132/6=22 (अभाज्य नहीं) → मॉरन नहीं

उदाहरण: 133 → योग=7, 133/7=19 (अभाज्य) → मॉरन संख्या!

  1. - C# प्रोग्राम: जांचें कि कोई संख्या 2 से विभाज्य है या नहीं

    यह जांचने के लिए कि कोई संख्या 2 से विभाज्य है या नहीं, आपको पहले शेषफल ज्ञात करना होगा।यदि संख्या को 2 से विभाजित करने पर शेषफल 0 है, तो यह 2 से विभाज्य होगी।मान लीजिए हमारी संख्या 10 है, हम इसे निम्न if-else का उपयोग करके जांचेंगे:// जांच रहे हैं कि संख्या 2 से विभाज्य है या नहीं if (num % 2 == 0)

  1. - Python में संख्या के विषम स्थानों पर अंकों का योग K से विभाज्य है या नहीं जांचें

    मान लीजिए हमारे पास एक संख्या n और दूसरी संख्या k है, हमें जांचना है कि n के विषम स्थानों (दाएं से बाएं) पर अंकों का योग k से विभाज्य है या नहीं।तो, यदि इनपुट n = 2416 k = 5 जैसा है, तो आउटपुट True होगा क्योंकि दाएं से बाएं विषम स्थानों पर संख्याओं का योग 4 + 6 = 10 है। जो 5 से विभाज्य है।इसे हल करन

  1. - पायथन में दी गई संख्या के सभी अंकों का योग खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक संख्या num है, हमें इसके अंकों का योग ढूंढना है। हमें इसे स्ट्रिंग्स का उपयोग किए बिना हल करना है। उदाहरण के लिए, यदि इनपुट है num = 512, तो आउटपुट होगा 8, क्योंकि 8 = 5 + 1 + 2। हल करने के चरण sum := 0 जब तक num != 0: sum := sum + (num % 10) num := num // 10 sum लौटाएं।