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

Số Osiris 3 chữ số trong C

Giới thiệu

Số Osiris (3 chữ số) là số bằng tổng các hoán vị 2 chữ số của chính nó.

Ví dụ

132: hoán vị 2 chữ số = 13, 12, 21, 23, 31, 32
Tổng = 13+12+21+23+31+32 = 132 → Là Osiris

Công thức toán học

Số abc (a hàng trăm, b hàng chục, c hàng đơn vị).

6 hoán vị 2 chữ số: ab, ac, ba, bc, ca, cb

Tổng = (10a+b) + (10a+c) + (10b+a) + (10b+c) + (10c+a) + (10c+b)
     = 22(a + b + c)
     = 22 × (tổng chữ số)

Điều kiện: 100a + 10b + c = 22(a+b+c)

Code C

#include <stdio.h>

int main() {
    int n = 132;
    int a = n % 10;         // hàng đơn vị
    int b = (n / 10) % 10;  // hàng chục
    int c = n / 100;        // hàng trăm
    int digit_sum = a + b + c;

    if (n == 22 * digit_sum)
        printf("%d is an Osiris number\n", n);
    else
        printf("%d is not an Osiris number\n", n);
    return 0;
}

Kết quả

132 is an Osiris number

Mở rộng

Có thể duyệt tìm tất cả số Osiris 3 chữ số:

for (int n = 100; n <= 999; n++) {
    int sum = n%10 + (n/10)%10 + n/100;
    if (n == 22 * sum) printf("%d ", n);
}
// Kết quả: 132, 264, 396