diff --git a/p2/p2.org b/p2/p2.org index f175102..81bec20 100644 --- a/p2/p2.org +++ b/p2/p2.org @@ -1,6 +1,6 @@ #+title: Solution to p2 -First load the data as a list of cons cells (stsrt . end) +First load the data as a list of cons cells (start . end) #+begin_src emacs-lisp :results none (with-temp-buffer (insert-file-contents "input") @@ -22,16 +22,19 @@ This is for part 1; only two repetitions (-iterate #'1+ (car rng) (1+ (- (cdr rng) (car rng))))) (defun invalid-id-p (num) - (let* ((num-digits (1+ (floor(log num 10)))) - (factor (expt 10 (floor (/ num-digits 2))))) - (= (mod num factor) (/ num factor)))) + (let* ((num-digits (1+ (floor (log num 10)))) + (mult (expt 10 (floor (/ num-digits 2))))) + (= (mod num mult) (/ num mult)))) (-sum - (apply #'append - (--map (-filter #'invalid-id-p it) (-map #'create-range data)))) + (--mapcat (-filter #'invalid-id-p it) + (-map #'create-range data))) #+end_src #+RESULTS: +: 1227775554 + +rsjjdj : 24157613387 This is for part 2: very inefficient, but it works @@ -51,9 +54,9 @@ This is for part 2: very inefficient, but it works (-map #'-distinct (--map (chop-num num it) factors))))) (-sum - (apply #'append - (--map (-filter #'invalid-id-p it) (-map #'create-range data)))) + (--mapcat (-filter #'invalid-id-p it) + (-map #'create-range data))) #+end_src #+RESULTS: -: 33832678380 +: 4174379265