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ố Strong (Strong Number)

Giới thiệu

Cho một số nguyên n, kiểm tra xem số đó có phải là Số Strong hay không.

Số Strong là số mà tổng giai thừa của các chữ số bằng chính số đó. Giai thừa (ký hiệu !) là tích của tất cả các số nguyên dương từ 1 đến số đó. Ví dụ: 4! = 4×3×2×1 = 24.

Để kiểm tra: tách từng chữ số, tính giai thừa từng chữ số, cộng tổng và so sánh với số ban đầu.

Ví dụ

Input: n = 124 → Output: Không phải số Strong
Giải thích: 1! + 2! + 4! = 1 + 2 + 24 = 27 ≠ 124

Input: n = 145 → Output: Là số Strong
Giải thích: 1! + 4! + 5! = 1 + 24 + 120 = 145

Phương pháp

  • Lấy từng chữ số từ hàng đơn vị
  • Tính giai thừa của từng chữ số
  • Cộng dồn vào biến kết quả
  • So sánh kết quả với số ban đầu

Thuật toán

Hàm factorial(int r):
  fact = 1
  Khi r > 1:
    fact = fact * r
    r = r - 1
  Trả về fact

Hàm check(int n):
  temp = n, result = 0
  Khi temp > 0:
    rem = temp % 10
    result = result + factorial(rem)
    temp = temp / 10
  Nếu result == n → trả về 1, ngược lại 0

Hàm main:
  n = 145
  Nếu check(n) → in "Yes it is a strong number"
  Ngược lại → in "no it is not a strong number"

Code C

#include <stdio.h>

int factorial(int r) {
    int fact = 1;
    while (r > 1) {
        fact = fact * r;
        r--;
    }
    return fact;
}

int check(int n) {
    int temp, rem, result = 0;
    temp = n;
    while (temp) {
        rem = temp % 10;
        result = result + factorial(rem);
        temp = temp / 10;
    }
    if (result == n) return 1;
    else return 0;
}

int main() {
    int n = 145;
    if (check(n))
        printf("Yes it is a strong number\n");
    else
        printf("no it is not a strong number\n");
    return 0;
}

Kết quả

Yes it is a strong number