Số hoàn hảo là gì? Kiểm tra số hoàn hảo bằng Java

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:

  1. Đầ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++).
  2. 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.
  3. 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
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x