Chào các anh, chị trong group. Em mới học java nên còn hơi mơ hồ .Mọi người cho em hỏi một bài toán là tìm số hoàn thiện trong mảng nhưng mà khi chạy hàm luôn trả về -1 (trong khi em nhập giá trị thỏa), nhờ mọi người tìm giúp em lỗi sai ạ. Em cảm ơn
public static void main(String[] args) {
// Tìm số hoàn thiện (Tổng các ước bằng chính nó)
// cuối cùng trong mảng nếu không
// có thì trả về giá trị là -1//
int n = 0;
int arr[] = new int[100];
nhap(n, arr);
int sohoanthien = soHoanThien(n, arr);
System.out.println("Số hoàn thiện cuối cùng trong mảng là: " + sohoanthien);
}// end main
public static void nhap(int n, int arr[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập số lượng phần tử trong mảng");
do {
n = sc.nextInt();
if (n <= 0 || n > 100) {
System.out.println("*****Lỗi nhập dữ liệu. Vui lòng nhập lại*****");
}
} while (n <= 0 || n > 100);
// for
System.out.println("Nhập giá trị phần tử");
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
System.out.println("arr[" + i + "]= " + arr[i]);
} // end for
}// end nhap
public static int soHoanThien(int n, int arr[]) {
// for
int num;
int sum;
for (int i = n - 1; i >= 0; i--) {
num = arr[i];
sum = 0;
for (int j = 1; j < num; j++) {
if (num % j == 0) {
sum = sum + j;
} // end if
} // end for
if (sum == num) {
return num;
} // end if
} // end for
return -1;
}// end soHoanThien