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