Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C kiểm tra số Perfect Plus (Số Armstrong)

Cho số x có n chữ số. Kiểm tra Plus Perfect Number (tương tự số Armstrong): tổng lũy thừa n của từng chữ số có bằng x không.

Công thức: Σ (chữ_số)ⁿ = x

Ví dụ

Input: 163 → 1³+6³+3³=244 ≠ 163 → Không phải
Input: 371 → 3³+7³+1³=371 → Là Plus Perfect Number

Phương pháp:

  • Đếm số chữ số n.
  • Tách từng chữ số, tính lũy thừa n, cộng dồn.
  • So sánh tổng với số gốc.

Mã nguồn C

#include <stdio.h>

int power(int a, int b) {
    int p = 1;
    while (b--) p *= a;
    return p;
}

int count(int n) {
    int c = 0;
    while (n) { c++; n /= 10; }
    return c;
}

int perfect_number(int n) {
    int x = count(n), sum = 0, rem;
    while (n) {
        rem = n % 10;
        sum += power(rem, x);
        n /= 10;
    }
    return sum;
}

int main() {
    int n = 1634;
    if (n == perfect_number(n))
        printf("Là số Perfect Plus (Armstrong)\n");
    else
        printf("Không phải số Perfect Plus\n");
    return 0;
}

Kết quả

Là số Perfect Plus (Armstrong)