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

C प्रोग्राम: प्लस परफेक्ट नंबर (आर्मस्ट्रांग संख्या) जांचें

प्लस परफेक्ट नंबर (आर्मस्ट्रांग संख्या)

एक संख्या प्लस परफेक्ट (आर्मस्ट्रांग) है यदि इसके अंकों के nवें घात का योग (n = अंकों की संख्या) संख्या के बराबर हो।

सूत्र

n अंकों की संख्या के लिए: Σ(अंकⁿ) = संख्या

उदाहरण

संख्याअंकगणनायोगआर्मस्ट्रांग?
1631,6,31³+6³+3³ = 1+216+27244नहीं
3713,7,13³+7³+1³ = 27+343+1371हाँ
16341,6,3,41⁴+6⁴+3⁴+4⁴ = 1+1296+81+2561634हाँ
94749,4,7,49⁴+4⁴+7⁴+4⁴9474हाँ

ज्ञात आर्मस्ट्रांग संख्याएं (आधार 10)

1 अंक: 0-9 (सभी)
3 अंक: 153, 370, 371, 407
4 अंक: 1634, 8208, 9474
5 अंक: 54748, 92727, 93084
6 अंक: 548834
7 अंक: 1741725, 4210818, 9800817, 9926315
8 अंक: 24678050, 24678051, 88593477

C प्रोग्राम

#include <stdio.h>
#include <math.h>

int count_digits(int n) {
    int count = 0;
    if (n == 0) return 1;
    while (n != 0) {
        count++;
        n /= 10;
    }
    return count;
}

int power(int base, int exp) {
    int result = 1;
    while (exp > 0) {
        result *= base;
        exp--;
    }
    return result;
}

bool is_armstrong(int n) {
    if (n < 0) return false;
    
    int original = n;
    int digits = count_digits(n);
    int sum = 0;
    
    while (n > 0) {
        int digit = n % 10;
        sum += power(digit, digits);
        n /= 10;
    }
    
    return sum == original;
}

int main() {
    int n;
    printf("संख्या दर्ज करें: ");
    scanf("%d", &n);
    
    if (is_armstrong(n))
        printf("%d एक आर्मस्ट्रांग संख्या है\n", n);
    else
        printf("%d आर्मस्ट्रांग संख्या नहीं है\n", n);
    
    return 0;
}

नमूना आउटपुट

संख्या दर्ज करें: 1634
1634 एक आर्मस्ट्रांग संख्या है

संख्या दर्ज करें: 163
163 आर्मस्ट्रांग संख्या नहीं है

अनुकूलन: पूर्व-गणना घातांक

bool is_armstrong_fast(int n) {
    if (n < 0) return false;
    if (n < 10) return true;  // एकल अंक
    
    int digits = count_digits(n);
    int powers[10];
    
    // 0-9 के लिए digit^digits पूर्व-गणना करें
    for (int i = 0; i <= 9; i++) {
        powers[i] = 1;
        for (int j = 0; j < digits; j++)
            powers[i] *= i;
    }
    
    int sum = 0, temp = n;
    while (temp > 0) {
        sum += powers[temp % 10];
        temp /= 10;
    }
    return sum == n;
}

रेंज में सभी आर्मस्ट्रांग संख्याएं खोजें

void find_armstrong_range(int start, int end) {
    printf("%d से %d तक आर्मस्ट्रांग संख्याएं:\n", start, end);
    for (int i = start; i <= end; i++) {
        if (is_armstrong_fast(i))
            printf("%d ", i);
    }
    printf("\n");
}

सामान्यीकरण: आधार b में आर्मस्ट्रांग

अवधारणा किसी भी आधार के लिए काम करती है। आधार 10 में उपरोक्त सूचीबद्ध हैं।

  1. C प्रोग्राम: जांचें कि सरणी पैलिंड्रोम है या नहीं (पुनरावृत्तीय) C प्रोग्राम: जांचें कि सरणी पैलिंड्रोम है या नहीं (पुनरावृत्तीय)

    पैलिंड्रोम सरणी एक सरणी पैलिंड्रोम है यदि यह आगे और पीछे से समान पढ़ी जाती है। उदाहरण सरणीपैलिंड्रोम? {1, 0, 0, 1}हाँ {1, 2, 3, 4, 5}नहीं {7}हाँ (एकल तत्व) {}हाँ (खाली) {1, 2, 2, 1}हाँ {1, 2, 3, 2, 1}हाँ पुनरावृत्तीय एल्गोरिदम दो पॉइंटर्स: start = 0, end = n-1 जब तक start < end: यदि ar

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

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

  1. पायथन प्रोग्राम: आर्मस्ट्रांग नंबर चेक करें पायथन प्रोग्राम: आर्मस्ट्रांग नंबर चेक करें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक इंटीजर n दिए जाने पर, हमें जांचना होगा कि दिया गया इंटीजर आर्मस्ट्रांग नंबर है या नहीं। एक पॉजिटिव इंटीजर को n क्रम का आर्मस्ट्रांग नंबर कहा जाता है यदि abcd... = a^n + b^n + c^n +