Browse Source

Add infinite list for prime construction

DricomDragon 5 years ago
parent
commit
d284b544e8
1 changed files with 6 additions and 0 deletions
  1. 6 0
      tp/rsa/main.hs

+ 6 - 0
tp/rsa/main.hs

@@ -53,3 +53,9 @@ makeBlocks bsize msg = map groupBytes (groupN bsize msg)
 
 splitBlocks::Message -> Message
 splitBlocks msg = concat (map ungroupBytes msg)
+
+-- Reuse arithmetics from slide 42
+primecandidates = [6 * k + a | k <- [1..], a <- [-1, 1]]
+dividers n = [k | k <- takeWhile (\k -> k * k <= n) primeinf, rem n k == 0]
+primeinf = 2:3:[n | n <- primecandidates, null (dividers n)]
+