Overview of an entry: I found a bug in that code I sent you, and fixed it in files called: process2-revised.pl results2-revised.txt In the results for the first iteration of the compression algorithm (which could be flawed of course), the entry for 122 doesn't look like the one you've entered, but the one for 462 does. Key: S := Solid Number Notation F := Factors D := Duplicates T := Total C := Compressed Solid Number Notation D := Decimal equivalent B := Binary eqivalent XXX - .YYY I J K L XXX := number to be compressed YYY := solid number notation written I := the index of the first factor, i.e. 2 is the *1st* prime J := the index of the second factor, i.e. 3 is the *2nd* prime K := the index of the third factor, i.e. 7 is the *4th* prime . . . ----------------------- $VAR1 = { 'S' => { 'F' => [ '2', 3, 7, 11 ], 'T' => 462, 'D' => [] } }; 462 - .462 1 2 4 5 $VAR1 = { 'C' => { 'D' => 27, 'B' => '11011' } }; 27 ----------------------- But this one I had trouble understanding: ----------------------- $VAR1 = { 'S' => { 'T' => 122, 'D' => [], 'F' => [ '2', 61 ] } }; 122 - .122 1 18 $VAR1 = { 'C' => { 'B' => '100000000000000001', 'D' => 131073 } }; 131073 -----------------------