in reply to Re^3: Modulus zero error
in thread Modulus zero error

Eek... I don't understand, got lost at "built a hash table in your while statement" :( (I'm new to perl and programming in general, don't really know all that much about it yet...)

I just want to know why
if (($n < $p[$i]) & ($x > 2)) gives me errors and
if (($n < $p[$i]) & ($x)) doesn't

I tried use strict, warnings, didn't tell me anything different

Replies are listed 'Best First'.
Re^5: Modulus zero error
by maa (Pilgrim) on Dec 24, 2004 at 07:52 UTC

    Can I ask... are you trying to do a Logical short-circuit AND (&&) in your if statement (to make sure both components are "true") or are you intentionaly performing a binary AND (&) on the data?

      Nope, that was just me being ignorant... I changed it to &&, but it still behaves the same way

        ok.. it would help to know what was in $p and what you were trying to do. for(;;) loops aren't as commonly used in Perl as they are in C as there are often more convenient idioms.

        #Assume @p is a list of numbers? my @p=(0..10); for($x = $prevmax;$x<=$max;$x++){ $n = sqrt($x); $i = 0; #Dividing by 0 is always an error... make sure $p[$i] is true while ( ($p[$i]) && ($x%$p[$i] !=0) ) { $i++; if (($n < $p[$i]) && ($x > $p[-1])) { print (1 & ($x > $p[-1])); # <--what are you expecting her +e push(@p,$x."\n"); last; } } }