# Find Maximal Product Number

Recently I was taking an online quiz and one of the code challenge is to find the maximal product number. I have came up with the below code with an algorithm. It took around 40 mins to write this so I accept it’s not a perfect code, but if anyone can improve it please do and let me know 🙂

```        List<int> total = new List<int>();

public int MaxAlgo(int input, string lpn)
{
int sum = 1, inp = input, mod;
if (input == 0)
{
int num = Convert.ToInt32(lpn);

while (num != 0)
{
mod = num % 10;
num /= 10;
sum *= mod;
}

}
for (int i = Math.Min(inp, input); i >= 1; i--)
{
MaxAlgo(input - i, lpn + "" + i);
}
return sum;
}

public int MaximalProduct(int input)
{
if (input <= 0)
{
return 0;
}
else
{
MaxAlgo(input, "");
var rtnval = 0;
for (int i = rtnval; i < total.Count; i++)
{
rtnval = Math.Max(rtnval, total[i]);
}
return rtnval;

}
}
```

Test : call the function “MaximalProduct(8)” which should return 18.

Note: I converted a string to int32, so it may throw a ‘System.OverflowException’ if the number is > 11