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


in reply to Re^2: ulam's spiral too slow
in thread ulam's spiral too slow

Thanks for catching that.  I just noticed the bug in my code, which is:  although I'm caching prime numbers, I'm not testing all of them as potential factors.

I'll go update the code now, but you're right; there needs to be a check for division by 2.


s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/

Replies are listed 'Best First'.
Re^4: ulam's spiral too slow
by orange (Beadle) on Apr 17, 2007 at 07:22 UTC
    thanks, your code is much faster than mine, and now it produce the same figure as in the
    http://en.wikipedia.org/wiki/Ulam_spiral
    after we invert the colors
    one small note is that your code will plot number 1 as a prime number, we can find this if we insert
    print "number of primes = $NumOfPrimes \n"; before the mainloop; and try the program with number 10 , it will give us the number of primes is 5
    as a variation i suggest for the invistigators for small spirals to replace the main plotting code:
    $c->createText( $x*+$o, $y+$o, -fill => "$colr", -text => '.'); with
    $c->createText( $x*30+$o, $y*30+$o, -fill => "$colr", -text => "$num"); so we can see numbers instead of dots in wich the primes will be in white color , the factor 30 above is for magnification of the plotting.