Hướng dẫn cách kiểm tra số hoàn hảo trong C. Bạn sẽ học được cách tạo hàm kiểm tra số hoàn hảo trong C sau bài học này.

Bạn đang xem: Số hoàn hảo là gì

Bạn đang xem: Số hoàn hảo là gì

Số hoàn hảo trong C

Theo wikipedia thì khái niệm số hoàn hảo như sau:

Số hoàn hảo (hay còn gọi là số hoàn chỉnh, số hoàn thiện hoặc số hoàn thành) là một số nguyên dương mà tổng các ước nguyên dương chính thức của nó (số nguyên dương bị nó chia hết ngoại trừ nó) bằng chính nó.Nguồn wikipedia

Khái niệm số hoàn hảo trong C cũng giống như trên. Chúng ta coi một số là số hoàn hảo trong C nếu như tổng các ước nguyên dương chính thức của nó (ngoại trừ nó) bằng chính nó.


*

Đây là chìa khóa thứ giúp chúng ta có thể tìm được số hoàn hảo trong C.

Kiểm tra số hoàn hảo trong C

Một số được coi là số hoàn hảo trong C nếu như tổng các ước nguyên dương chính thức của nó (ngoại trừ nó) bằng chính nó.

Để tìm ước số của một số chỉ định, chúng ta chia lần lượt số đó cho các số nhỏ hơn nó, và nếu phép chia không có dư thì số được chia chính là một ước số cần tìm.

Và chúng ta tạo hàm kiểm tra số hoàn hảo trong C như sau:

Copy

int find_perfect_num(int n){ // flag = 1 => số hoàn hảo // flag = 0 => không phải số hoàn hảo int flag = 0, total=0; //Tìm tổng ước số for (int i=1;i if (n % i == 0) total+=i;//Nếu là ước số thì cộng vào tổng } //So sánh tổng ước số với số đã cho để tìm ra số hoàn hảo if (total == n & n!=0) flag = 1; return flag;}

Chúng ta có thể gọi hàm này và sử dụng trong chương trình nhập n kiểm tra n có phải số hoàn hảo không trong C như sau:

Copy

#include int find_perfect_num(int n){ // flag = 1 => số hoàn hảo // flag = 0 => không phải số hoàn hảo int flag = 0, total=0; //Tìm tổng ước số for (int i=1;i if (n % i == 0) total+=i;//Nếu là ước số thì cộng vào tổng } //So sánh tổng ước số với số đã cho để tìm ra số hoàn hảo if (total == n & n!=0) flag = 1; return flag;}int main(void){ int n; printf(">> nhap mot so tu nhien: "); scanf("%d",&n); int check = find_perfect_num(n); if( check == 1 ) printf("%d la so hoan hao\n", n); else printf("%d khong phai la so hoan hao\n", n); return 0;}

Lưu ý là số nhập từ bàn phím phải là một số tự nhiên.

Xem thêm: Sự Bay Hơi Là Gì - Lý Thuyết Sự Bay Hơi Và Sự Ngưng Tụ

Màn hình nhập liệu và kết quả kiểm tra số hoàn hảo trong C sẽ như sau:

Copy

In ra dãy số hoàn hảo bằng C

Và dưới đây là ví dụ về chương trình nhập n in ra dãy số hoàn hảo từ 1 đến n trong C:

Copy

#include int find_perfect_num(int n){ // flag = 1 => số hoàn hảo // flag = 0 => không phải số hoàn hảo int flag = 0, total=0; //Tìm tổng ước số for (int i=1;i if (n % i == 0) total+=i;//Nếu là ước số thì cộng vào tổng } //So sánh if (total == n & n!=0) flag = 1; return flag;}int main(void){ int n; printf(">> nhap mot so n: "); scanf("%d",&n); int i = 0, check; while ( i check = find_perfect_num(i); if( check == 1 ) printf("%d ", i); ++i; } return 0;}

Kết quả:

Copy

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách kiểm tra số hoàn hảo trong C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.