Số hoàn hảo là số có tổng các ước số của nó bằng chính nó. Ví dụ
Số 6 là một số hoàn hảo vì tổng các ước số của nó bằng chính nó: 1 + 2 + 3 = 6.
Số 12 không phải là số hoàn hảo vì tổng các ước số của nó lớn hơn chính nó: 1 + 2 + 3 + 4 + 6 = 16 (>12).
Viết chương trình kiểm tra số hoàn hảo
Các bước thực hiện để kiểm tra một số có phải là số hoàn hảo hay không:
- Đầu tiên chúng ta tìm ra các ước số của a. Để làm được điều này chúng ta sẽ cần một vòng lặp For, lặp từ 1 đến a/2 với bước nhảy là 1 (i++).
- Tiếp đến ta tạo một biến Sum, được dùng để tính tổng các ước số của a. Ta sẽ tạo một điều kiện trong vòng lặp For, nếu (a % i == 0) thì sum += i.
- Và cuối cùng, kiểm tra xem nếu sum == a thì a chính là số hoàn hảo và ngược lại.
* Lưu ý: Các ước số của một số luôn bé hơn hoặc bằng 1/2 số đó. Vì vậy, trong ví dụ này các ước số của a luôn bé hơn hoặc bằng a/2.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
boolean res;
do {
System.out.print("Input n = ");
n = sc.nextInt();
} while (n <= 0);
res = checkPerfectNumber(n);
if (res) {
System.out.println(n + " la so hoan hao");
} else {
System.out.println(n + " khong phai la so hoan hao");
}
}
public static boolean checkPerfectNumber(int n) {
int sum = 0;
for (int i = 1; i <= n/2; i++) {
if (n % i == 0) {
sum += i;
}
}
return sum == n;
}
}
Output:
Input n = 12 12 khong phai la so hoan hao Input n = 12 12 khong phai la so hoan hao Input n = 496 496 la so hoan hao