From 551704e191a3f8a0e71cfae08b60aae8d56a5c56 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Tue, 2 Dec 2025 11:22:35 -0500 Subject: [PATCH] [p2] part 2 done --- p2/p2.org | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/p2/p2.org b/p2/p2.org index 1158a81..f175102 100644 --- a/p2/p2.org +++ b/p2/p2.org @@ -33,3 +33,27 @@ This is for part 1; only two repetitions #+RESULTS: : 24157613387 + +This is for part 2: very inefficient, but it works +#+begin_src emacs-lisp + (defun factors (num) + (let ((candidates (-iterate #'1+ 1 num))) + (--filter (= num (* it (floor (/ num it)))) candidates))) + + (defun chop-num (num len) + (let ((mult (expt 10 len))) + (--unfold (when (> it 0) (cons (mod it mult) (floor (/ it mult)))) num))) + + (defun invalid-id-p (num) + (let* ((num-digits (1+ (floor(log num 10)))) + (factors (-drop-last 1 (factors num-digits)))) + (--any (= 1 (length it)) + (-map #'-distinct (--map (chop-num num it) factors))))) + + (-sum + (apply #'append + (--map (-filter #'invalid-id-p it) (-map #'create-range data)))) +#+end_src + +#+RESULTS: +: 33832678380