開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Perl
『初めてのPerl 第5版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-427-9) の15章(スマートマッチとgiven-when), 15.6(練習問題)5を解いてみる。
5.
コード(TextWrangler)
#!/usr/bin/env perl
use strict;
use warnings;
use 5.012;
given($ARGV[0]){
when(!/^\d*$/){die "コマンドライン引数に数を指定";}
my @divisors = divisors($_);
print "好きな数を入力: ";
chomp(my $fav = <STDIN>);
when(!(2 ~~ @divisors)){say "奇数";continue;}
when(2 ~~ @divisors){say "偶数";continue;}
when($fav ~~ @divisors){say "好きな数の倍数";continue;}
when([] ~~ @divisors){say "素数";continue;}
default{say "約数一覧: @divisors";}
}
sub divisors{
my $number = shift;
my @divisors = ();
for(2..$number/2){
push @divisors, $_ unless $number % $_;
}
return @divisors;
}
入出力結果(Terminal)
$ ./sample.pl 99 好きな数を入力: 10 奇数 約数一覧: 3 9 11 33 >$ ./sample.pl 99 好きな数を入力: 11 奇数 好きな数の倍数 約数一覧: 3 9 11 33 >$ ./sample.pl 50 好きな数を入力: 5 偶数 好きな数の倍数 約数一覧: 2 5 10 25$ ./sample.pl 50 好きな数を入力: 6 偶数 約数一覧: 2 5 10 25 $
0 コメント:
コメントを投稿