## Problem Description and Formulation

The problem is an optimization problem with two variables: 'milligrams of vitamin C' and 'milligrams of vitamin B4'. The objective function to be maximized is \(2.04 \times \text{milligrams of vitamin C} + 8.38 \times \text{milligrams of vitamin B4}\).

The constraints are as follows:
- The immune support index for milligrams of vitamin C is 0.24, and for milligrams of vitamin B4 is 0.73. The total combined immune support index must be at least 20 and at most 36.
- The kidney support index for milligrams of vitamin C is 0.03, and for milligrams of vitamin B4 is 0.9. The total combined kidney support index must be at least 27 and at most 51.
- Four times the milligrams of vitamin C minus two times the milligrams of vitamin B4 must be at least zero.
- Milligrams of vitamin C must be a non-fractional amount (integer), and milligrams of vitamin B4 can be a fractional amount.

## Gurobi Code Formulation

```python
import gurobi

# Create a new model
model = gurobi.Model()

# Define the variables
# Vitamin C in milligrams (integer)
vitamin_C = model.addVar(name="vitamin_C", vtype=gurobi.GRB.INTEGER)
# Vitamin B4 in milligrams (continuous)
vitamin_B4 = model.addVar(name="vitamin_B4")

# Objective function: Maximize 2.04 * vitamin_C + 8.38 * vitamin_B4
model.setObjective(2.04 * vitamin_C + 8.38 * vitamin_B4, gurobi.GRB.MAXIMIZE)

# Constraints
# Immune support index: 0.24 * vitamin_C + 0.73 * vitamin_B4 >= 20
model.addConstr(0.24 * vitamin_C + 0.73 * vitamin_B4 >= 20, name="immune_support_min")
# Immune support index: 0.24 * vitamin_C + 0.73 * vitamin_B4 <= 36
model.addConstr(0.24 * vitamin_C + 0.73 * vitamin_B4 <= 36, name="immune_support_max")
# Kidney support index: 0.03 * vitamin_C + 0.9 * vitamin_B4 >= 27
model.addConstr(0.03 * vitamin_C + 0.9 * vitamin_B4 >= 27, name="kidney_support_min")
# Kidney support index: 0.03 * vitamin_C + 0.9 * vitamin_B4 <= 51
model.addConstr(0.03 * vitamin_C + 0.9 * vitamin_B4 <= 51, name="kidney_support_max")
# 4 * vitamin_C - 2 * vitamin_B4 >= 0
model.addConstr(4 * vitamin_C - 2 * vitamin_B4 >= 0, name="vitamin_balance")

# Optimize the model
model.optimize()

# Print the results
if model.status == gurobi.GRB.OPTIMAL:
    print("Optimal solution found.")
    print(f"Vitamin C: {vitamin_C.varValue} mg")
    print(f"Vitamin B4: {vitamin_B4.varValue} mg")
    print(f"Objective: {model.objVal}")
else:
    print("No optimal solution found.")
```