day 2
authorLaurent MAZET <laurent.mazet@thalesgroup.com>
Thu, 4 Dec 2025 08:46:31 +0000 (09:46 +0100)
committerLaurent MAZET <laurent.mazet@thalesgroup.com>
Thu, 4 Dec 2025 08:46:31 +0000 (09:46 +0100)
day-2.awk [new file with mode: 0644]
day-2.txt [new file with mode: 0644]
day-2_test.txt [new file with mode: 0644]
day-2b.awk [new file with mode: 0644]

diff --git a/day-2.awk b/day-2.awk
new file mode 100644 (file)
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 (file)
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 (file)
index 0000000..a3f22ef
--- /dev/null
@@ -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 (file)
index 0000000..e3b6b23
--- /dev/null
@@ -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
+}