2) { $fours = ceil($total / 4) - ($threes = ($total % 4) ? (4 - ($total % 4)) : 0); echo "$i = (4 x $fours) + (3 x $threes); check: " . ((3* $threes) + (4 * $fours)) . "\n"; } else { $fours = floor($i / 4); $threes = floor( ($remainder = ($i - (4 * $fours))) / 3); echo "$i: (4x$fours) + (3x$threes) + $remainder = " . (($i == (4 * $fours + 3 * $threes + $remainer )) ? $i : 'invalid') . " : remainer invalid\n"; } } ?> output: 1: (4x0) + (3x0) + 1 = invalid : remainer invalid 2: (4x0) + (3x0) + 2 = invalid : remainer invalid 3: (4x0) + (3x1) + 0 = 3 : number is divisible by 3 plus 0 fours 4: (4x1) + (3x0) + 0 = 4 : number is divisible by 4 plus 0 threes 5: (4x1) + (3x0) + 1 = invalid : remainer invalid 6: (4x0) + (3x2) + 0 = 6 : number is divisible by 3 plus 0 fours 7: (4x1) + (3x1) + 0 = 7 : number is divisible by 3 plus 1 fours 8: (4x2) + (3x0) + 0 = 8 : number is divisible by 4 plus 0 threes 9: (4x0) + (3x3) + 0 = 9 : number is divisible by 3 plus 0 fours 10: (4x1) + (3x2) + 0 = 10 : number is divisible by 3 plus 1 fours 11: (4x2) + (3x1) + 0 = 11 : number is divisible by 3 plus 2 fours 12: (4x3) + (3x0) + 0 = 12 : number is divisible by 4 plus 0 threes 13: (4x1) + (3x3) + 0 = 13 : number is divisible by 3 plus 1 fours 14: (4x2) + (3x2) + 0 = 14 : number is divisible by 3 plus 2 fours 15: (4x0) + (3x5) + 0 = 15 : number is divisible by 3 plus 0 fours 16: (4x4) + (3x0) + 0 = 16 : number is divisible by 4 plus 0 threes 17: (4x2) + (3x3) + 0 = 17 : number is divisible by 3 plus 2 fours 18: (4x0) + (3x6) + 0 = 18 : number is divisible by 3 plus 0 fours 19: (4x1) + (3x5) + 0 = 19 : number is divisible by 3 plus 1 fours 20: (4x5) + (3x0) + 0 = 20 : number is divisible by 4 plus 0 threes 21: (4x0) + (3x7) + 0 = 21 : number is divisible by 3 plus 0 fours 22: (4x1) + (3x6) + 0 = 22 : number is divisible by 3 plus 1 fours 23: (4x2) + (3x5) + 0 = 23 : number is divisible by 3 plus 2 fours 24: (4x6) + (3x0) + 0 = 24 : number is divisible by 4 plus 0 threes 25: (4x1) + (3x7) + 0 = 25 : number is divisible by 3 plus 1 fours 26: (4x2) + (3x6) + 0 = 26 : number is divisible by 3 plus 2 fours 27: (4x0) + (3x9) + 0 = 27 : number is divisible by 3 plus 0 fours 28: (4x7) + (3x0) + 0 = 28 : number is divisible by 4 plus 0 threes 29: (4x2) + (3x7) + 0 = 29 : number is divisible by 3 plus 2 fours 30: (4x0) + (3x10) + 0 = 30 : number is divisible by 3 plus 0 fours 31: (4x1) + (3x9) + 0 = 31 : number is divisible by 3 plus 1 fours 32: (4x8) + (3x0) + 0 = 32 : number is divisible by 4 plus 0 threes 33: (4x0) + (3x11) + 0 = 33 : number is divisible by 3 plus 0 fours 34: (4x1) + (3x10) + 0 = 34 : number is divisible by 3 plus 1 fours 35: (4x2) + (3x9) + 0 = 35 : number is divisible by 3 plus 2 fours 36: (4x9) + (3x0) + 0 = 36 : number is divisible by 4 plus 0 threes 37: (4x1) + (3x11) + 0 = 37 : number is divisible by 3 plus 1 fours 38: (4x2) + (3x10) + 0 = 38 : number is divisible by 3 plus 2 fours 39: (4x0) + (3x13) + 0 = 39 : number is divisible by 3 plus 0 fours 40: (4x10) + (3x0) + 0 = 40 : number is divisible by 4 plus 0 threes 41: (4x2) + (3x11) + 0 = 41 : number is divisible by 3 plus 2 fours 42: (4x0) + (3x14) + 0 = 42 : number is divisible by 3 plus 0 fours 43: (4x1) + (3x13) + 0 = 43 : number is divisible by 3 plus 1 fours 44: (4x11) + (3x0) + 0 = 44 : number is divisible by 4 plus 0 threes 45: (4x0) + (3x15) + 0 = 45 : number is divisible by 3 plus 0 fours 46: (4x1) + (3x14) + 0 = 46 : number is divisible by 3 plus 1 fours 47: (4x2) + (3x13) + 0 = 47 : number is divisible by 3 plus 2 fours 48: (4x12) + (3x0) + 0 = 48 : number is divisible by 4 plus 0 threes 49: (4x1) + (3x15) + 0 = 49 : number is divisible by 3 plus 1 fours