perlquestion artist <b>Dear Monks</b><p> I found an interesting puzzle and here is my attempt to solve it. Let say we have NxN matrix. <code> [ [1, 2] [4, 8] ] </code> By Joining the columns and rows individually, I get the following four formed-numbers. 12,14,28,48 There Common Divisor is '2'. I like to find the matrix with the highest common divisor. Some condtions are.. <ul> <li> No formed-number should start with 0. <li> No two formed-numbers be same. </ul> I can do it easily for 2x2 matrix and found highest divisor as 7. and the formed-numbers : 28,21,14,84. <code> [[2,8] [1,4]] </code> How I can do with higher dimentions more efficiently? Even for 3X3 with it has to test around billion numbers with my method. <p> <code> \$| += 1; foreach my \$divider (2..9){ print "Divider \$divider\n"; N: foreach \$n (1111..9999){ next if \$n =~ /0\d+/; @n = split //,\$n; my \$count = 0; my @pairs; my %pairs; foreach (qw(01 02 13 23)){ my(\$p,\$q) = split //; my \$num = \$n[\$p].\$n[\$q]; push @pairs, \$num; next N if defined \$pairs{\$num}; \$pairs{\$num} = 1; \$count++ if \$num % \$divider == 0; } print join " " => @pairs,"\n" if \$count == 4; } } </code> Thanks <br> [artist]