From 4c16ddbfa28002d4cb4f6a955b3266819a677f69 Mon Sep 17 00:00:00 2001 From: Laurent MAZET Date: Thu, 4 Dec 2025 09:46:31 +0100 Subject: [PATCH] day 2 --- day-2.awk | 27 +++++++++++++++++++++++++++ day-2.txt | 1 + day-2_test.txt | 1 + day-2b.awk | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 day-2.awk create mode 100644 day-2.txt create mode 100644 day-2_test.txt create mode 100644 day-2b.awk diff --git a/day-2.awk b/day-2.awk new file mode 100644 index 0000000..1709d3a --- /dev/null +++ b/day-2.awk @@ -0,0 +1,27 @@ +#!/usr/bin/awk -f + +BEGIN { + FS = "," + s = 0 +} + +{ + for (f = 1; f <= NF; f++) { + split($(f), r, "-") + for (i = r[1]; i <= r[2]; i++) { + n = int(log(i) / log(10) + 1) + if (n % 2 == 0) { + N = 10^(n / 2) + #print N, i % N, int(i / N) + if (i % N == int(i / N)) { + print i + s += i + } + } + } + } +} + +END { + print "sum", s +} diff --git a/day-2.txt b/day-2.txt new file mode 100644 index 0000000..eb464b6 --- /dev/null +++ b/day-2.txt @@ -0,0 +1 @@ +5959566378-5959623425,946263-1041590,7777713106-7777870316,35289387-35394603,400-605,9398763-9592164,74280544-74442206,85684682-85865536,90493-179243,202820-342465,872920-935940,76905692-76973065,822774704-822842541,642605-677786,3759067960-3759239836,1284-3164,755464-833196,52-128,3-14,30481-55388,844722790-844967944,83826709-83860070,9595933151-9595993435,4216-9667,529939-579900,1077949-1151438,394508-486310,794-1154,10159-17642,5471119-5683923,16-36,17797-29079,187-382 diff --git a/day-2_test.txt b/day-2_test.txt new file mode 100644 index 0000000..a3f22ef --- /dev/null +++ b/day-2_test.txt @@ -0,0 +1 @@ +11-22,95-115,998-1012,1188511880-1188511890,222220-222224,1698522-1698528,446443-446449,38593856-38593862,565653-565659,824824821-824824827,2121212118-2121212124 diff --git a/day-2b.awk b/day-2b.awk new file mode 100644 index 0000000..e3b6b23 --- /dev/null +++ b/day-2b.awk @@ -0,0 +1,36 @@ +#!/usr/bin/awk -f + +BEGIN { + FS = "," + mode = 1 + s = 0 +} + +{ + for (f = 1; f <= NF; f++) { + split($(f), r, "-") + for (i = r[1]; i <= r[2]; i++) { + n = int(log(i) / log(10) + 1) + m = mode ? 1 : int((n + 1) / 2) + for (j = m; j <= n / 2; j++) { + if (n % j == 0) { + N = 10^j + k = i % N + v = 0 + for (l = 0; l < n / j; l++) { + v = v * N + k + } + if (v == i) { + print i + s += i + break + } + } + } + } + } +} + +END { + print "sum", s +} -- 2.30.2