use Math::Pari qw(gcd); my \$x = gcd(232,300); print "gcd is \$x\n"; ##```## use strict; my @nineset = (9, 8, 7, 6, 5, 4, 3, 2, 1); my @tenset = (9, 8, 7, 6, 5, 4, 3, 2, 1, 0); # Array is arranged: # a b c # d e f # g h i sub gcf { my (\$x, \$y) = @_; (\$x, \$y) = (\$y, \$x % \$y) while \$y; return \$x; } sub multigcf { my \$x = shift; \$x = gcf(\$x, shift) while @_; return \$x; } my (\$a, \$b, \$c, \$d, \$e, \$f, \$g, \$h, \$i); my (\$abc, \$def, \$ghi, \$adg, \$beh, \$cfi); my (\$gcf1, \$gcf2, \$gcf3, \$gcf4); my \$maxgcf = 1; my @maxsolution = (); foreach \$a (@nineset) { foreach \$b (@nineset) { foreach \$c (@nineset) { foreach \$d (@nineset) { foreach \$g (@nineset) { \$abc = \$a . \$b . \$c; \$adg = \$a . \$d . \$g; next if (\$abc eq \$adg); \$gcf1 = gcf(\$abc, \$adg); next if (\$gcf1 <= \$maxgcf || \$gcf1 == 1); foreach \$e (@tenset) { foreach \$f (@tenset) { \$def = \$d . \$e . \$f; next if (\$abc eq \$def || \$adg eq \$def); \$gcf2 = multigcf(\$def, \$abc, \$adg); next if (\$gcf2 <= \$maxgcf || \$gcf2 == 1); foreach \$h (@tenset) { \$beh = \$b . \$e . \$h; next if (\$abc eq \$beh || \$adg eq \$beh || \$def eq \$beh); \$gcf3 = multigcf(\$beh, \$def, \$abc, \$adg); next if (\$gcf3 <= \$maxgcf || \$gcf3 == 1); foreach \$i (@tenset) { \$cfi = \$c . \$f . \$i; next if (\$abc eq \$cfi || \$adg eq \$cfi || \$def eq \$cfi || \$beh eq \$cfi); \$ghi = \$g . \$h . \$i; next if (\$abc eq \$ghi || \$adg eq \$ghi || \$def eq \$ghi || \$beh eq \$ghi || \$cfi eq \$ghi); \$gcf4 = multigcf(\$cfi, \$ghi, \$beh, \$def, \$abc, \$adg); next if (\$gcf4 <= \$maxgcf || \$gcf4 == 1); # Found a good one so far. \$maxgcf = \$gcf4; @maxsolution = (\$a, \$b, \$c, \$d, \$e, \$f, \$g, \$h, \$i); } # i } #h } #f } #e } #g } # d } #c } #b } #a (\$a, \$b, \$c, \$d, \$e, \$f, \$g, \$h, \$i) = @maxsolution; print "\$a \$b \$c\n"; print "\$d \$e \$f\n"; print "\$g \$h \$i\n"; print "Common divisor is: \$maxgcf\n"; ##``````## 8 3 2 9 2 8 6 0 8 Common divisor is: 32 ##``````## 1 7 6 3 9 6 2 2 0 Common divisor is: 44 ```