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ó.
a) Kiểm tra n có là số hoàn hảo hay không?
#include<iostream> using namespace std; bool check(int n){ int s = 0; for(int i=1;i<=n/2;i++){ if(n%i==0) s+=i; } if(s==n) return true; return false; } int main(){ int n; cout<<"Nhap n: "; cin>>n; if(check(n) ){ cout<<n<<" la so hoan hao."; } else cout<<n<<" khong la so hoan hao."; return 0; }
b) Xây dựng hàm main