Chúng tôi được cung cấp với một mảng các phần tử kiểu số nguyên và nhiệm vụ là tìm các thừa số lớn nhất được tạo thành bằng cách nhân hai số, tức là trước tiên chúng tôi sẽ nhân các số có trong một tích chéo tính toán giống như mảng thứ hai, chúng tôi sẽ tính các thừa số của những số đó và kiểm tra các yếu tố tối đa trong số tất cả.
Đầu vào
int arr[] = {3, 2, 10}
Đầu ra
Maximum factors formed by two numbers are: 8
Giải thích
-
Tính tích số chéo bên trong, tức là 3 * 2 =6, 3 * 10 =30, 2 * 10 =20
-
Bây giờ hãy tính các thừa số cho 6 -> 1, 2, 3, 6; 30 -> 1, 2, 3, 5, 6, 10, 15, 30; 20 -> 1, 2, 4,5, 10, 20.
-
Kiểm tra số có số lượng yếu tố tối đa, tức là 6 có tổng 4 yếu tố, 20 có tổng 6 yếu tố và 30 có 8 yếu tố. Vậy thừa số cực đại do hai số tạo thành là 8.
Đầu vào
int arr[] = {1, 4, 6}
Đầu ra
Maximum factors formed by two numbers are: 8
Giải thích
-
Tính tích số chéo bên trong, tức là 1 * 4 =4, 1 * 6 =6, 4 * 6 =24
-
Bây giờ hãy tính các thừa số cho 4 -> 1, 2, 4; 6 -> 1, 2, 3, 6; 24 -> 1, 2, 3, 4, 6, 8, 12, 24.
-
Kiểm tra số có số lượng yếu tố tối đa, tức là 4 có tổng 3 yếu tố, 6 có tổng 4 yếu tố và 24 có 8 yếu tố. Vậy thừa số tối đa do hai số tạo thành là 8.
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
- Nhập các phần tử số nguyên vào một mảng
- Lấy biến tạm thời là bội số và biến lớn để lưu trữ giá trị lớn nhất
- Bắt đầu vòng lặp i từ 0 cho đến độ dài của một mảng
- Bên trong vòng lặp, bắt đầu một vòng lặp j khác từ 0 cho đến khi độ dài của một mảng
- Kiểm tra xem a [i] không bằng [j] nếu có, sau đó đặt bội số của biến với [i] * a [j] và kiểm tra nếu lớn
- Trong hàm countFactor (nhiều)
- Lấy biến tạm thời là int c =0
- Bắt đầu vòng lặp cho từ j đến 1 cho đến nhiều giá trị
- Kiểm tra xem nhiều% j =0
- Sau đó, tăng c lên 1
- Kiểm tra xem nhiều% j =0
- Trả lại c
- Trong hàm countFactor (nhiều)
Ví dụ
public class BiggestFactor{ public static void main(String[] args){ int a[]={3,2,10}; int multiple=1; int big=1; for(int i=0;i<a.length-1;i++){ for (int j = 0; j < a.length; j++){ if(a[i]!=a[j]){ multiple=a[i]*a[j]; if(big<countFactor(multiple)) big=countFactor(multiple); } } } System.out.println(“Maximum factors formed by two numbers are: ” +big); } private static int countFactor(int i){ int c=0; for (int j = 1; j<=i; j++){ if(i%j==0){ c++; } } return c; } }
Đầu ra
Maximum factors formed by two numbers are: 8