Cách kiểm tra số hoàn hảo bằng code C/C++

5
17586
Số-hoàn-hảo
Số-hoàn-hảo

Khái niệm số hoàn hảo

Mình sẽ nói về khái niệm số hoàn hảo trước nhé. Trước tiên, bạn hãy xem ví dụ sau:

  • Số 6 là một số hoàn hảo vì tổng các ước số thật sự của số 6 là: 1 + 2 + 3 = 6 (tức là bằng chính nó)
  • Số 12 không phải là một số hoàn hảo vì tổng các ước số thực sự của số 12 là: 1 + 2 + 3 + 4 + 6 = 16 (khác với chính nó)

Trong ví dụ trên có khái niệm ước số. Vậy ước số là gì? Giả sử có hai số a và b, nếu a chia hết cho b thì b được gọi là ước số của aƯớc số thật sự là ước số không bao gồm chính nó. Ví dụ:

  • Các ước số của số 6 bao gồm: 1, 2, 3 và 6. Vậy, ước số thật sự của số 6 bao gồm: 1, 2, 3.

Từ đó, mình đi đến khái niệm số hoàn hảo là một số mà tổng các ước số thật sự bằng chính nó. Đến đây chắc bạn đã hiểu.

Viết chương trình kiểm tra số hoàn hảo

  • Đầu tiên ta tìm các ước số thật sự của số a
  • Ta dùng một biến sum tính tổng các ước số thật sự của a
  • Kiểm tra nếu sum == a  thì a chính là số hoàn hảo
  • Lưu ý: các ước số thật sự của a luôn bé hơn hoặc bằng a/2. Các bạn dùng điều kiện này để giới hạn vòng for lại.

Code C

Kết quả sau khi chạy

Code C++

Kết quả sau khi chạy

Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !

avatar
  Subscribe  
newest oldest most voted
Notify of
Nguyễn Văn Hiếu
Guest
Nguyễn Văn Hiếu

Cảm ơn bài chia sẻ tuyệt vời của Tâm 😀

NHi
Guest
NHi

#include
int main()
{
int n,i,sum=0;
scanf(“%d”,&n);
for(i=1;i<=n/2;i++){
if(n%i==0)
sum+=i;
}
if(sum==n)
printf("YES");
else
printf("NO");
return 0;
}

Vũ Hải Sơn
Guest
Vũ Hải Sơn

cho e m hỏi tí cái dòng 3 có bool check là j v ạ (e còn là học sinh nên 0 chuyên lắm

Nguyễn Văn Hiếu
Admin
Nguyễn Văn Hiếu

Nó là hàm, em học thêm về hàm nhé.