go ahead... be a heretic PerlMonks

### Re^2: ulam's spiral too slow

by bart (Canon)
 on Apr 16, 2007 at 10:42 UTC ( #610313=note: print w/replies, xml ) Need Help??

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

Your is_prime function claims that 4 is a prime number. Would you please please please check on even-ness of a number, before you even start going through the whole checking loop?

Replies are listed 'Best First'.
Re^3: ulam's spiral too slow
by liverpole (Monsignor) on Apr 16, 2007 at 12:53 UTC
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\$..\$/
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.

Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://610313]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2021-07-30 23:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?

No recent polls found

Notices?