intValue.pl

#!/usr/local/bin/perl
# (c)copyleft 2017-11-15 : Coded by shun kinoshita / knuhs
#
# 問題(八卷直一さんがFacebook上で提示したもの)
# ?*(?-?/?)=10 の?には一桁の異なる整数が入ります。
#
use strict;
my $count;

     # -9から+9までの範囲を調べる
     for( my $a=-9; $a<=9; $a++ )
     {    for( my $b=-9; $b<=9; $b++ )
          {    # $a との重複を避ける
               next if $a==$b ;
               for( my $c=-9; $c<=9; $c++ )
               {    # $a,$b との重複を避ける
                    next if $a==$c | $b==$c ;
                    for( my $d=-9; $d<=9; $d++ )
                    {    # $a,$b,$c との重複を避ける。ゼロの割り算を回避する
                         next if $a==$d | $b==$d | $c==$d | $d==0 ;
                         # 式の値を求める
                         my $value = $a * ( $b - $c / $d );
                         # 値が10以外のものは除く
                         next if $value!=10 ;
                         # カウントアップ
                         $count++;
                         # 値が10になるものを表示する
                         print "[$count]:($a)*(($b)-($c)/($d)) = $value\n";
                    }
               }
          }
     }
     # 式が成立する場合の総数を表示する
     print "Total counts = $count\n";
     exit;