- 论坛徽章:
- 0
|
本帖最后由 无双六 于 2012-11-12 19:50 编辑
代码如下:- #!usr/bin/perl
- use 5.014;
- use utf8;
- use strict;
- sub divisors {
- my$number = shift;
- my@divisors = ();
- foreach my$divisor ( 2 .. ( $number/2 ) ) {
- push @divisors, $divisor unless $number % $divisor;
- }
- return @divisors;
- }
- say "Checking the number <$ARGV[0]>";
- given ( $ARGV[0] ) {
- when ( ! /\A\d+\Z/ ) {say "It's not a number!"}
- my@empty = ();
- when ( &divisors ~~ @empty ) {say "It is a prime"}
-
- my@divisors = &divisors( $_ );
- default {say "It's factor is @divisors"}
- }
复制代码 要求是输入一个数,是质数就输出"It is a prime",不是就输出它的因数。
运行结果其余都没问题,就是输入质数的时候,输出是"It's factory is ",看起来是"divisors ~~ @empty"没有匹配成功,试了几种判定方法都不行。 |
|