Design a counter that counts in the sequence 0,1,3,6,10,15, using four D flip-flops as memory elements and natural binary encoding.

I am familiar with designing an up and down counter, but this i'm not sure about. I suppose the counts doesn't get reset to 0 it's just going to stop at 15.

The first thing i did is i created a state table for present and next states. which looks like this (Note, each bit in present and next states is represented as Qn)

0000 -> 0001

0001 -> 0011

0011 -> 0110

0110 -> 1010

1010 -> 1111

Then i came up with the folling 4 equations for the circuit.

D3 = Q1Q0'(Q2 XOR Q2)

D2 = Q3'Q2Q1Q0 + Q3Q2'Q1Q0'

D1 = Q1Q0'(Q3 XOR Q2) + Q3'Q2'Q0

D0 = Q3'Q2'Q1' + Q3Q2'Q1Q0'

The circuit is very complex lol. I'm not sure if what i'm doing is actually any good. Any pointers would surely help. Thanks in advance.