2014年7月29日火曜日

開発環境

初めてのPerl 第6版 (Randal L. Schwartz (著)、brian d foy (著)、Tom Phoenix (著)、近藤 嘉雪 (翻訳)、オライリージャパン)、15章(スマートマッチとgiven-when)の15.6(練習問題)4.を解いてみる。

その他参考書籍

15.6(練習問題)4.

コード(BBEdit, Emacs)

sample4.pl

#!/usr/bin/env perl
# use diagnostics;
use strict;
use warnings;
use 5.016;
use utf8;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';
binmode STDERR, ':utf8';

sub divisors {
    my $number = shift;

    my @divisors = ();
    for (2 .. ( $number / 2)) {
        push @divisors, $_ unless $number % $_;
    }
    @divisors;
}

given ($ARGV[0]) {
    when (/\D+/) { say "Not a number."; }
    my @divisors = divisors $_;
    my @temp;
    when (@divisors ~~ @temp) { say "その数が素数である。"; }
    default { say "@divisors"; }
}

入出力結果(Terminal)

$ ./sample4.pl 2
その数が素数である。
$ ./sample4.pl 3
その数が素数である。
$ ./sample4.pl 4
2
$ ./sample4.pl 5
その数が素数である。
$ ./sample4.pl 99
3 9 11 33
$ ./sample4.pl perl
Not a number.
$

0 コメント:

コメントを投稿