2007年7月29日星期日

Prime number

判断一个整数是否素数。刚才在网上搜了一下,竟然发现有人在到处找什么一百万以内、一亿以内的素数表,纳闷ing...,几行代码不就出来了么?还找个什么劲。

sub prime_judge {
    my $n = $_[0];
     return 1 if ($n == 2); # 2 是唯一的偶数素数
    return 0 unless ($n % 2); # 其它偶数为非素数
    
    my $factor = int(sqrt($n)) + 1;
    for (my $i=3; $i<=$factor; $i+=2)
    { return 0 unless ($n % $i) }
    return 1;
}

没有评论: