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

Số dồi dào (Abundant Number) trong C

Số dồi dào (abundant/excessive): số nhỏ hơn tổng các ước thực sự của nó.

Ví dụ

12: ước 1,2,3,4,6 → tổng = 16 > 12 → dồi dào (abundance = 4)

Chương trình

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

int main() {
    int n = 56, sum = 0;
    for (int i = 1; i <= sqrt(n); i++) {
        if (n % i == 0) {
            if (n / i == i) sum += i;
            else sum += i + n / i;
        }
    }
    sum -= n; // bỏ chính n
    
    if (sum > n) printf("%d la so doi dao (abundance = %d)", n, sum - n);
    else printf("%d khong phai so doi dao", n);
    return 0;
}

Lưu ý: Code gốc có lỗi logic (thiếu else), đã sửa.