Doubt in aquestion on hackerearth question link:https://www.hackerearth.com/practice/basic-programming/recursion/recursion-and-backtracking/practice-problems/algorithm/divide-number-a410603f/description/

my code:import java.util.*;

public class hackerearth {

public static void main(String[] args) {
	Scanner scn=new Scanner(System.in);
	int n=scn.nextInt();
    
	ArrayList<Integer> b=new ArrayList<>();
	for (int i=1;i<n;i++) {
		if (n%i==0) {
			b.add(i);
		}
	}
	
	combination( b,0,n,1,"");
	
	
}
public static void combination(ArrayList<Integer> b,int vidx,int n,int multi,String ans) {
	ArrayList<Integer> mr=new ArrayList<>();
	if (n ==0) {
		if (ans.length()==4) {
			mr.add(multi);
			System.out.println(mr);
			
			return;
			
		}
		
	}
	
		
	if ( n<0 || vidx==b.size()) {
		
		return ;
		
		
	}

		combination( b, vidx, n-b.get(vidx), multi*b.get(vidx), ans+b.get(vidx));
	
	combination( b, vidx+1, n,multi, ans);
	
	
	
	
}

}
con u tell me what i wrong in my code and how can i find max

???plz reply asap