sub next_prime_iterator { my $num = shift(@_); return 3 if $num < 3; do { $num += 2 } until is_prime($num); return $num; } sub is_prime { my $guess = shift(@_); my $divisor = 3; my $quotient; while(1) { $quotient= $guess / $divisor; return 1 if $quotient < $divisor; return 0 if int($quotient) == $quotient; $divisor += 2; } } #### my $x= 1+~0; $x *= 2 while $x != $x+1; $x /= 2; my $y= $x; for( 1..5 ) { $x++; print $x-$y, " ", $x%3, " ", $x/3-int($x/3), "; "; } print $/ __END__ 1 0 0.75; 2 0 0; 3 2 0.25; 4 2 0.75; 5 1 0;