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;
}
#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;
}
#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
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧