Implementing two seven-segment displays to display 2-digit numbers (0-30)

Without using an Arduino and microcontrollers, is this the most efficient way to implement two seven-segment displays to show 2-digit numbers (0-30) with the help of BCD decoders?

$$d_1=d_2=0\\d_3=AC\ +\ AB \\d_4=A^\prime BD+A^\prime BC+AB^\prime C^\prime +BCD\\d_5=A^\prime BC^\prime D^\prime +AB^\prime C^\prime D+ABCD^\prime\\d_6=A^\prime B^\prime C+A^\prime CD+AC^\prime D^\prime+ ABC^\prime\\d_7=A^\prime B^\prime D+B^\prime CD+A^\prime BCD^\prime+ AB^\prime C^\prime D^\prime+ ABC^\prime D\\d_8=E$$

where $$\d_i\$$ represents the input to the two BCD decoders connected to the two seven-segment displays and $$\ABCDE\$$ are the 5-bit binary inputs that must be displayed by two seven-segment displays.

The minterms are derived from the truth table for example:

$$\text{ ABCDE = 11101 (29)}\to \text{ 0010 (2) and 1001 (9) }$$ which will then be fed to the two BCD decoders that is: $$\0010\$$ to BCD deocder 1 and $$\1001\$$ to BCD decoder 2 so that the two seven-segment displays would show 29.

I feel that there is a more efficient way to implement this, since the truth table somehow exhibits a "pattern".

• Comments are not for extended discussion; this conversation has been moved to chat. Jan 4 at 6:04