Định nghĩa
Số hoàn hảo là số mà tổng các ước số của nó bằng 2 lần số đó.
Thuật toán
BẮT ĐẦU
B1: Khai báo biến int, khởi tạo result = 0
B2: Đọc số tại runtime
B3: Vòng lặp i = 1 đến number
Nếu number % i == 0 thì result = result + i
B4: Kiểm tra: nếu result == 2 * number -> "perfect number", ngược lại "not perfect number"
KẾT THÚC
Chương trình
#include <stdio.h>
int main() {
int number, i, result = 0;
printf("Nhap so: ");
scanf("%d", &number);
for (i = 1; i <= number; i++) {
if (number % i == 0)
result = result + i;
}
if (result == 2 * number)
printf("perfect number");
else
printf("not perfect number");
return 0;
}
Kết quả
Nhap so: 28 perfect number Nhap so: 46 not perfect number