tag:blogger.com,1999:blog-19544619.post3064617622275188290..comments2024-03-23T00:56:48.137-04:00Comments on 0xFE - 11111110b - 0376: Generating Circular Primes0xfehttp://www.blogger.com/profile/11179501091623983192noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-19544619.post-90307816973702347982010-01-04T07:43:40.101-05:002010-01-04T07:43:40.101-05:00I've got this sitting around my $HOME, possibl...I've got this sitting around my $HOME, possibly useful. Also, nice mach-o article.<br /><br />(looks like the indentation is gonna be butchered..)<br /><br />{-# OPTIONS_GHC -O2 #-}<br /><br />import Data.List(foldl')<br />import Data.Monoid(mempty)<br />import Data.IntMap(IntMap) --Data.Map(Map)<br />import qualified Data.IntMap as M --Data.Map as M<br />import System.Environment(getArgs)<br /><br />type Z = Int --Integer<br />type ZMap = IntMap [Z] --Map Z [Z]<br /><br />main = print<br /> . (sieve !!)<br /> . read . head =<< getArgs<br /><br />sieve :: [Z]<br />sieve = go [2..] mempty<br /> where go [] _ = []<br /> go (x:xs) m = maybe<br /> (x : go xs (insert x m))<br /> (go xs . fixup x m)<br /> (M.lookup x m)<br /><br />insert :: Z -> ZMap -> ZMap<br />insert x m = M.insert (x*x) [x] m<br /><br />fixup :: Z -> ZMap -> [Z] -> ZMap<br />fixup x m = flip foldl' (M.delete x m)<br /> (\m p -> M.insertWith (++) (x+p) [p] m)mmorrownoreply@blogger.comtag:blogger.com,1999:blog-19544619.post-25496453923050244812009-09-25T19:18:23.871-04:002009-09-25T19:18:23.871-04:00@bassam Thanks for the pointer.@bassam Thanks for the pointer.0xfehttps://www.blogger.com/profile/11179501091623983192noreply@blogger.comtag:blogger.com,1999:blog-19544619.post-76170689809074293972009-09-25T19:17:27.609-04:002009-09-25T19:17:27.609-04:00@ts That's a pretty good observation. Thanks!@ts That's a pretty good observation. Thanks!0xfehttps://www.blogger.com/profile/11179501091623983192noreply@blogger.comtag:blogger.com,1999:blog-19544619.post-50082562215444354002009-06-10T08:02:07.821-04:002009-06-10T08:02:07.821-04:00Divisibility by 3 and 11 should be done separately...Divisibility by 3 and 11 should be done separately.<br /><br />http://home.comcast.net/~babdulbaki/Circular_Primes.htmlBassam Abdul-Bakihttps://www.blogger.com/profile/03467628092593406179noreply@blogger.comtag:blogger.com,1999:blog-19544619.post-39249246857181271902009-05-04T12:03:00.000-04:002009-05-04T12:03:00.000-04:00Well, you could adjust your prime number generator...Well, you could adjust your prime number generator to generate two or more digit prime numbers only containing the digits 1, 3, 7 and 9. Otherwise the rotated numbers will be divisible by 2 or 5.Tobias Svenssonhttps://www.blogger.com/profile/14182007029531911943noreply@blogger.com