Kiểm tra một số có phải là số Armstrong hay không trong C
Trong toán học, số Armstrong là một số mà tổng các lũy thừa bậc k của các chữ số trong số đó bằng chính số đó. Trong bài tập này, mình sẽ tìm hiểu cách kiểm tra xem một số có phải là số Armstrong hay không bằng cách sử dụng ngôn ngữ lập trình C.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Chương trình kiểm tra xem một số có phải là số Armstrong hay không trong C
Cách giải quyết:
Để kiểm tra xem một số có phải là số Armstrong hay không, mình sẽ thực hiện các bước sau:
- Viết một hàm để tính lũy thừa bậc k của một số.
 - Viết một hàm để kiểm tra xem một số có phải là số 
Armstronghay không, bằng cách sử dụng hàm tính lũy thừa bậc k. - Trong hàm main, nhập vào số cần kiểm tra và gọi hàm kiểm tra số 
Armstrong. 
Hãy xem cách giải bài lập trình sau:
Bài viết này được đăng tại [free tuts .net]
File: armstrong_number.c
#include <stdio.h>
#include <math.h>
// Hàm tính lũy thừa bậc k của một số
int power(int base, int exponent) {
    int result = 1;
    for (int i = 0; i < exponent; i++) {
        result *= base;
    }
    return result;
}
// Hàm kiểm tra xem một số có phải là số Armstrong hay không
int isArmstrong(int number) {
    int temp = number;
    int sum = 0;
    int digits = 0;
    
    // Đếm số chữ số của số đó
    while (temp != 0) {
        digits++;
        temp /= 10;
    }
    temp = number;
    
    // Tính tổng các lũy thừa bậc digits của các chữ số
    while (temp != 0) {
        int digit = temp % 10;
        sum += power(digit, digits);
        temp /= 10;
    }
    // Kiểm tra nếu tổng bằng số ban đầu
    if (sum == number) {
        return 1; // Là số Armstrong
    } else {
        return 0; // Không phải số Armstrong
    }
}
int main() {
    int number;
    printf("freetuts.net");
    printf("Nhap mot so: ");
    scanf("%d", &number);
    // Kiểm tra số Armstrong và in kết quả ra màn hình freetuts.net
    if (isArmstrong(number)) {
        printf("%d la so Armstrong.\n", number);
    } else {
        printf("%d khong phai la so Armstrong.\n", number);
    }
    return 0;
}
Kết quả:


Giải thích:
- Trong code trên,mình đã viết hai hàm: 
powerđể tính lũy thừa bậc k của một số vàisArmstrongđể kiểm tra xem một số có phải là sốArmstronghay không. - Trong hàm main, mình nhập số cần kiểm tra và gọi hàm 
isArmstrongđể kiểm tra. - Kết quả cuối cùng được in ra là thông báo về việc số nhập vào có phải là số 
Armstronghay không. 
Việc này giúp mình kiểm tra xem một số có phải là số Armstrong hay không một cách dễ dàng trong ngôn ngữ lập trình C.

            Các kiểu dữ liệu trong C ( int - float - double - char ...)        
            Thuật toán tìm ước chung lớn nhất trong C/C++        
            Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)        
            ComboBox - ListBox trong lập trình C# winforms        
            Random trong Python: Tạo số random ngẫu nhiên        
            Lệnh cin và cout trong C++        
                Cách khai báo biến trong PHP, các loại biến thường gặp            
                Download và cài đặt Vertrigo Server            
                Thẻ li trong HTML            
                Thẻ article trong HTML5            
                Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên            
                Cách dùng thẻ img trong HTML và các thuộc tính của img            
                Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng