http://www.perlmonks.org?node_id=1038845


in reply to Perl vs. Python for prime numbers

I was able to transfer the logic using a block with last:
#!/usr/bin/perl use warnings; use strict; use feature qw(say); for my $n (2 .. 99) { PRIME: { for my $x (2 .. $n - 1) { last PRIME if 0 == $n % $x; } say $n, ' is a primer number'; } }

Update.
But I would rather use something like the following:

for my $n (2 .. 99) { my $is_prime = 1; $is_prime &&= $n % $_ or last for 2 .. sqrt $n; say $n, ' is a primer number' if $is_prime; }

Update 2: &&= used instead of *= to avoid large numbers.

لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Replies are listed 'Best First'.
Re^2: Perl vs. Python for prime numbers
by LanX (Saint) on Jun 14, 2013 at 07:49 UTC
    > $is_prime &&= $n % $_ or last for 2 .. sqrt $n;

    why so complicated, isn't a simple flag sufficient?

    #!/usr/bin/perl use warnings; use strict; use feature qw(say); for my $n (2 .. 99) { my $prime = 1; for (2 .. $n-1) { $prime = 0, last unless $n % $_; } say $n, ' is a primer number' if $prime; }

    Cheers Rolf

    ( addicted to the Perl Programming Language)