Add 2024 Day 07

This commit is contained in:
Burnus 2024-12-07 10:14:37 +01:00
parent 81c7a42af2
commit 9f5393894c
5 changed files with 1025 additions and 0 deletions

View file

@ -0,0 +1,13 @@
[package]
name = "day07_bridge_repair"
version = "0.1.0"
edition = "2021"
[dependencies]
[dev-dependencies]
criterion = "0.5.1"
[[bench]]
name = "test_benchmark"
harness = false

View file

@ -0,0 +1,61 @@
The Historians take you to a familiar [rope bridge](/2022/day/9) over a river in the middle of a jungle. The Chief isn't on this side of the bridge, though; maybe he's on the other side?
When you go to cross the bridge, you notice a group of engineers trying to repair it. (Apparently, it breaks pretty frequently.) You won't be able to cross until it's fixed.
You ask how long it'll take; the engineers tell you that it only needs final calibrations, but some young elephants were playing nearby and *stole all the operators* from their calibration equations! They could finish the calibrations if only someone could determine which test values could possibly be produced by placing any combination of operators into their calibration equations (your puzzle input).
For example:
```
190: 10 19
3267: 81 40 27
83: 17 5
156: 15 6
7290: 6 8 6 15
161011: 16 10 13
192: 17 8 14
21037: 9 7 18 13
292: 11 6 16 20
```
Each line represents a single equation. The test value appears before the colon on each line; it is your job to determine whether the remaining numbers can be combined with operators to produce the test value.
Operators are *always evaluated left-to-right*, *not* according to precedence rules. Furthermore, numbers in the equations cannot be rearranged. Glancing into the jungle, you can see elephants holding two different types of operators: *add* (`+`) and *multiply* (`*`).
Only three of the above equations can be made true by inserting operators:
* `190: 10 19` has only one position that accepts an operator: between `10` and `19`. Choosing `+` would give `29`, but choosing `*` would give the test value (`10 * 19 = 190`).
* `3267: 81 40 27` has two positions for operators. Of the four possible configurations of the operators, *two* cause the right side to match the test value: `81 + 40 * 27` and `81 * 40 + 27` both equal `3267` (when evaluated left-to-right)!
* `292: 11 6 16 20` can be solved in exactly one way: `11 + 6 * 16 + 20`.
The engineers just need the *total calibration result*, which is the sum of the test values from just the equations that could possibly be true. In the above example, the sum of the test values for the three equations listed above is `*3749*`.
Determine which equations could possibly be true. *What is their total calibration result?*
Your puzzle answer was `1153997401072`.
\--- Part Two ---
----------
The engineers seem concerned; the total calibration result you gave them is nowhere close to being within safety tolerances. Just then, you spot your mistake: some well-hidden elephants are holding a *third type of operator*.
The [concatenation](https://en.wikipedia.org/wiki/Concatenation) operator (`||`) combines the digits from its left and right inputs into a single number. For example, `12 || 345` would become `12345`. All operators are still evaluated left-to-right.
Now, apart from the three equations that could be made true using only addition and multiplication, the above example has three more equations that can be made true by inserting operators:
* `156: 15 6` can be made true through a single concatenation: `15 || 6 = 156`.
* `7290: 6 8 6 15` can be made true using `6 * 8 || 6 * 15`.
* `192: 17 8 14` can be made true using `17 || 8 + 14`.
Adding up all six test values (the three that could be made before using only `+` and `*` plus the new three that can now be made by also using `||`) produces the new *total calibration result* of `*11387*`.
Using your new knowledge of elephant hiding spots, determine which equations could possibly be true. *What is their total calibration result?*
Your puzzle answer was `97902809384118`.
Both parts of this puzzle are complete! They provide two gold stars: \*\*
At this point, you should [return to your Advent calendar](/2024) and try another puzzle.
If you still want to see it, you can [get your puzzle input](7/input).

View file

@ -0,0 +1,92 @@
use core::fmt::Display;
use std::num::ParseIntError;
#[derive(Debug, PartialEq, Eq)]
pub enum ParseError<'a> {
ParseIntError(std::num::ParseIntError),
LineMalformed(&'a str),
}
impl From<ParseIntError> for ParseError<'_> {
fn from(value: ParseIntError) -> Self {
Self::ParseIntError(value)
}
}
impl Display for ParseError<'_> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::LineMalformed(v) => write!(f, "Line is malformed: {v}\nShould be of format \"190: 10 19\""),
Self::ParseIntError(e) => write!(f, "Unable to parse into integer: {e}"),
}
}
}
struct Calibration {
result: usize,
operands: Vec<usize>,
}
impl<'a> TryFrom<&'a str> for Calibration {
type Error = ParseError<'a>;
fn try_from(value: &'a str) -> Result<Self, Self::Error> {
if let Some((result, operands)) = value.split_once(": ") {
let result = result.parse::<usize>()?;
let operands: Vec<_> = operands.split_whitespace().map(|op| op.parse::<usize>()).collect::<Result<Vec<_>, _>>()?;
Ok(Self { result, operands, })
} else {
Err(Self::Error::LineMalformed(value))
}
}
}
impl Calibration {
fn combine(so_far: usize, operands: &[usize], target: usize, with_concat: bool) -> bool {
if so_far > target {
false
} else if operands.is_empty() {
so_far == target
} else {
Self::combine(so_far + operands[0], &operands[1..], target, with_concat) ||
Self::combine(so_far * operands[0], &operands[1..], target, with_concat) ||
with_concat && Self::combine(
so_far * 10_usize.pow(operands[0].ilog10() + 1) + operands[0],
&operands[1..],
target,
with_concat)
}
}
fn can_evaluate(&self, with_concat: bool) -> bool {
Self::combine(self.operands[0], &self.operands[1..], self.result, with_concat)
}
}
pub fn run(input: &str) -> Result<(usize, usize), ParseError> {
let calibrations: Vec<_> = input.lines().map(Calibration::try_from).collect::<Result<Vec<_>, _>>()?;
let first = calibrations.iter().filter(|c| c.can_evaluate(false)).map(|c| c.result).sum();
let second = calibrations.iter().filter(|c| c.can_evaluate(true)).map(|c| c.result).sum();
Ok((first, second))
}
#[cfg(test)]
mod tests {
use super::*;
use std::fs::read_to_string;
fn read_file(name: &str) -> String {
read_to_string(name).expect(&format!("Unable to read file: {name}")[..]).trim().to_string()
}
#[test]
fn test_sample() {
let sample_input = read_file("tests/sample_input");
assert_eq!(run(&sample_input), Ok((3749, 11387)));
}
#[test]
fn test_challenge() {
let challenge_input = read_file("tests/challenge_input");
assert_eq!(run(&challenge_input), Ok((1153997401072, 97902809384118)));
}
}

View file

@ -0,0 +1,850 @@
9234: 8 10 8 1 63 99
5962122: 71 9 516 171 1 339 69
7861101: 1 212 309 7 3 4 10 50
4185056939: 4 18 189 4 312 6 94 1
25380: 5 27 2 91 748 62
520509600: 9 670 4 130 2 83
434727621: 492 888 9 98 405
553270827383: 9 682 588 53 8 2 9 4 8 5
2868250: 4 33 71 306 418
52182: 77 676 62 67 1
14061: 57 161 9 7 327
113170: 81 18 92 5 3 9 63 1 336
172838: 2 766 56 175 25 4 6
2381763: 809 5 36 6 1 7 5 6 4 8
1540748: 7 5 9 361 97
32584018: 19 27 548 60 7
392433: 26 5 8 3 35
724768: 139 65 1 19 1 80 1 367
5234568825: 872 424 4 137 6
472219362: 6 97 3 764 9 6 59
107230700: 18 36 5 9 6 8 3 9 65 8 5 5
1892756526: 44 212 5 507 60 3 4 6
70680: 3 21 1 6 81 97 6 11 7 96
2492896: 332 21 6 868 8
125418629: 4 8 243 3 7 6 2 55 16 8 5
42102868500: 64 5 2 6 5 587 35 9 55
511987: 8 7 9 7 987
14697: 2 81 27 3 2 77 1 3 6 3 9
83032: 307 45 4 6 87 31
4536: 7 52 7 96 83 2 6 4 5 8
54226011870: 2 2 3 2 1 91 231 8 4 90
19887708065: 37 3 2 2 4 8 3 2 739 4 89
2061527103: 4 726 706 5 8 58 26 4 8
279272460: 505 204 1 4 9 8 7 78 8 4
175744: 4 8 2 4 3 5 749 27
131431: 84 46 66 76 8
13312899577: 832 8 44 9 787 2
103783226: 474 217 2 923 226
30216973: 54 5 512 8 946 24
8907600392: 90 34 3 1 539 6 7 9 92
512: 1 32 5 5 52 2 1 8 4 51 4 2
32730572: 6 9 788 469
2373: 9 138 315 72 744
1386384: 250 2 1 65 9 4 6 8 7 9 34
785: 11 1 2 7 1
54833058: 53 7 3 63 782
1344765125: 9 6 2 1 7 650 3 1 4 3 36 3
2138105646: 29 3 4 8 920 3 6 6 7 7 8 8
4703307900: 3 9 382 39 436 789 4
14391: 86 26 641 1 5 6
3069529: 9 45 96 3 5 62 22 1 529
813890: 21 1 34 964 93
127524630: 49 53 438 47 894
22306382: 9 33 16 476 3 51 380 2
3554746: 695 5 19 8 7 592 4 6
96698: 14 69 98
67069: 5 21 637 131 53
308544: 80 8 680 2 7 64 4 6 2 4
3114506521: 956 47 86 806 9
137885258: 7 2 1 3 9 1 4 171 2 59 2
19766577290: 3 352 95 3 9 6 26 7 842
2340433: 638 611 6 4 783 5 733
745412: 36 242 5 462 413
416166: 74 6 18 33 8 9
19183500: 6 14 5 87 525
655136168: 311 9 69 3 1 1 3 21 8
15130: 2 7 8 1 7
9088: 2 969 9 288 61
2328250603: 7 2 7 596 568 6 2 6 8 5 7
141445: 2 8 5 629 818
3456860904: 7 249 7 5 5 7 2 66 6 564
560591: 8 39 684 5 14 618 4 79
9515800: 2 147 822 196 50 1
1825104217: 8 362 1 9 3 6 7 9 51 466
54162: 80 15 1 3 8 3 4 4 7 8 3 6
128286780098: 549 38 3 83 84 6 1 49 1
6808: 7 98 2 86 23
2972984: 9 118 8 703 17 82 3 5
13011210: 8 3 417 7 5 1 5 55 9 20 9
1223: 70 360 786 5 2
18537526: 95 98 25 91 706 77 7
42510: 7 6 512 1
150566660: 40 4 945 5 2 6 5 724
11601102: 371 71 55 677 706 8
159468: 761 3 23 23 3 357
1145405553821: 343 1 390 6 856 2 20
36711861: 5 8 11 5 7 4 7 8 7 9 971 5
205304: 57 6 6 96 7
531527: 97 684 83 2 2 2 79
812674587: 81 26 7 45 90
6054: 405 199 6 6
16768009: 8 6 3 67 4 881 4 39 817
1319: 5 2 29 366 2 7
1105380: 62 7 9 20 89
7764076834: 1 7 2 39 1 4 68 6 9 3 2 37
1666756: 9 1 335 565 661 3 4 91
4696656: 497 1 3 5 90 7 6
103669997: 72 488 8 5 143
2023562: 9 1 458 301 1 4 73 9 2
3668288405: 77 6 794 840 7
42152655: 132 8 66 657 504 46
2455628: 3 5 35 8 3 2 4 7 73 1 564
3866: 88 3 5 4 2 26 4 8 4 3 3 14
297336461: 2 8 6 8 6 1 856 31 1 7 83
6795684: 716 1 5 4 70 462 27
14222070: 93 67 4 5 4 9 1 9 570
89645290: 9 2 8 3 7 3 5 5 7 899 18 6
115943343: 414 16 6 5 6 5 86 7 5 31
7895282766: 8 32 2 747 528 2 7 6 9 1
3228145: 52 1 2 2 617
572391: 562 33 37 26
27476: 34 7 36 1 76
5215472: 30 900 701 4 8
94551101: 6 7 469 4 5 6 7 8 2 2 55 9
301888: 9 92 90 339 5 32
850824: 50 4 8 1 16 73 4 2 39 6 6
457165912: 2 4 3 1 4 792 4 55 721 8
19518: 432 9 5 69 9
2373165: 4 5 602 438 66 2 1 4 2 7
303266506: 3 684 88 823 881
770269794: 241 84 3 9 22 95 7 42
155670: 802 32 895 7 9
1943: 2 1 600 621 720
2670444288: 8 61 542 82 384
825943: 20 6 485 1 4
11594: 490 22 4 585 225
3594192000: 55 5 2 5 8 8 475 4 2 6 35
86530589748: 865 305 888 9 48
1027010: 19 7 1 9 767
23709635331: 6 600 78 76 43 56 33 2
360238915070: 6 3 133 348 2 4 7 3 951
24161: 231 4 26 62 75
582494725: 38 7 6 6 2 7 67 3 78 4 4 2
29321919: 44 5 76 10 7 41 33 99
5786032: 4 91 993 58 8 3 98 8 4 4
65370259: 705 18 927 66 6
3589: 11 94 3 3 1
382457046: 4 454 5 2 21 6 44 48
242926082: 48 7 5 660 70 5 2 8 4 83
11376: 2 6 941 76 8
1514053781661: 4 4 525 19 31 5 1 665 4
2162: 6 174 2 5 34 9 1 5 6 9 5
184879156: 9 571 878 260 22
1978394: 4 286 986 6 7 5 921 86
14802077: 981 5 1 7 15 77
8136059939: 9 864 7 3 8 6 173 2 3 35
1140467328: 442 6 598 473 9
19878846: 6 6 3 8 2 6 9 842 4 8 9 70
9579: 19 269 909 8 3
19184: 8 77 3 218
51029952: 88 5 3 8 8 75 543 8 8
264026: 9 9 2 1 3 7 740 1 220 6 4
4099862539: 6 44 801 948 625 38
33388725: 948 3 47 747 66
4158722: 1 2 380 76 48
62963517790: 787 21 3 86 73 600 93
577714802: 920 6 257 14 802
48437424494: 5 96 2 5 27 2 406 4 3 6 5
514212: 1 628 943 2 10
17878: 60 558 9 2 3 4 343 8 6 1
1041: 2 20 3 2 801
3513: 281 889 3
6308671578: 58 658 7 7 8 976 3 9 75
188897280: 78 574 63 96 32 86
34716465920: 6 559 9 6 599 472 8 8 5
267114: 6 4 1 1 3 59 60 7 2 5 48 5
4955160: 9 73 41 6 85 17 28 51
14597226: 40 58 5 86 8 4 73
52411392012: 661 76 1 80 165 6 1 3
1843666: 39 8 5 3 3 73 153 775 6
7481527875: 76 6 1 1 1 2 8 9 7 865 3 7
68947200: 79 2 2 456 945
1899: 3 3 841 995 57
110187009: 206 2 92 57 51 83
13293652678: 303 656 138 18 2 7 55
1164: 34 69 5 10 84
9701021: 6 755 25 773 7 70 1
15989401530319: 7 54 705 6 15 30 319
186741600: 17 995 80 69 2
1145016: 37 1 54 93 6
8747: 86 452 5 429 9
2998937: 7 27 441 67 2
143567363: 498 64 406 75 629
44644315968: 16 678 5 9 3 3 9 4 8 529
62840152050696: 87 27 798 89 593 12 6
77: 5 61 8
21906612448: 2 130 7 8 5 7 1 84 446
29481: 441 4 74 6 567 8 33
24514266: 11 6 5 3 6 1 7 86 6 7 16 1
129758045: 32 487 2 64 837 8 265
24739292162: 7 4 467 68 8 4 58 99 4 2
38037: 4 95 31 8
16325: 3 427 948 49 7 7 330
49721890288940: 974 9 3 9 51 3 9 8 8 9 38
14870894: 70 751 96 444 5 7 8 94
28619136: 9 7 581 75 4 6 8 7 2 9 7
74405648: 9 353 22 4 161 8 58
13448411: 3 3 28 43 1 910 8 411
1898642616: 1 338 7 1 3 4 4 488 35 5
9649234: 206 9 88 6 85 1 1 33
2313: 9 4 413 5 6 62
14808455880: 2 8 5 9 554 9 3 49 9 6 1 8
33500: 7 7 4 5 225 7 8 72 316
18576: 402 84 288 4 6
15453267748: 154 530 4 22 77 4 5
27195129: 27 929 97 4 5 9 9 1 3 9 3
55896: 685 80 17 190 889
1806606915: 349 2 35 290 30 3 5 51
101440976982: 25 10 78 52 518 980
4620: 2 8 6 6 9 7 6 59 27 8 4 6
696867: 72 5 6 56 34
5460: 8 1 4 7 13 5
16488459502: 661 30 398 271 88
85: 6 53 25
207367212: 5 9 1 8 96 1 5 5 9 8 34 9
183617280: 17 79 96 69 231 60
2686: 9 5 4 2 7 1 4 9 5 6 2 264
140678730018: 272 862 5 50 6 20 1
94771990: 7 6 8 5 5 6 46 89 1 6 8 7
520982280: 39 57 3 930 84
80097: 9 7 43 5 1 5 964 7 9 402
72316180: 3 61 580 90 2
2012224448: 22 7 73 343 783 5 950
1295932086: 3 2 2 3 3 6 623 86 4 5 85
974381887500: 3 2 479 6 2 37 750 1 5 3
751850508: 4 59 2 39 270 28 30 5 3
74437: 2 6 3 1 52 77 6 1 8 9 4 3
8977665: 12 7 4 874 76 5 3 11
771056573782: 91 12 3 6 50 939 7 779
308082: 7 3 929 1 4 95 8 3
1486: 9 358 4 5 12 1
21953: 66 306 19 3 690 60
5484: 530 77 3 7 3
4121388: 8 4 152 60 837
501081186: 5 650 174 843 5 6 717
73645: 3 2 66 11 128 7 7 125
50641: 454 1 5 4 1 1 3 5 8 9 817
1384064: 25 971 57 8 1 381
45551: 407 497 7 5 1
6382919: 1 3 90 994 13
575568: 9 44 768 701 47
20914648: 6 749 5 46 25 143 922
29008880: 4 6 2 3 4 4 56 881
428182614: 9 355 6 6 135 989 1 9
902285: 2 7 7 6 524 286
332: 4 266 59
69336: 8 9 9 5 215 939 54
86949386084: 11 299 53 4 7 9 860 84
1088: 9 23 86 73 80 1 4
1810399: 3 5 587 8 1 3 11 8 9 3 4
988540: 35 232 715 6 540
188160: 9 7 56 27 3 5 19 8 6 4 4 4
538634472750: 55 96 73 8 10 3 425
38238799250: 1 686 26 15 8 34 872 1
14904258: 88 4 9 18 256
1427846: 1 2 62 1 3 4 24 55 1 6 7 2
1175044: 2 92 4 2 68 23 23
793261: 63 5 4 12 1 27 3 34 7
4538016: 3 569 83 53 78 1 32
105: 2 50 7
66181: 233 4 28 772 57
105082930849: 42 5 165 86 5 783 66
289708029: 8 9 6 9 4 6 851 1 8 732 2
73895406: 68 8 81 559 26 3
1634: 62 4 96 9 8
33124371: 69 981 29 21 489
865972536: 809 320 535 2 139
180175968784: 310 868 837 98 8
7213185607233: 40 6 43 952 5 6 7 231
394841946: 740 5 2 8 91 8 364 954
18099321465: 4 451 90 503 21 457 6
45895209132: 558 2 4 4 9 2 4 9 514 7 2
139126: 9 235 570 45
285741: 1 214 66 5 741
95105: 484 6 655 83 64 6
1993199: 383 6 78 3 69 36 3 5 7
375892: 8 509 4 5 131 11
942081843: 84 721 162 8 903
17648588634: 8 404 7 15 3 6 4 2 634
35928751: 75 11 67 13 50
317750404232: 170 88 36 590 4 232
2688453602: 6 4 7 8 2 452 5 2 8 9 5 6
22886: 735 3 31 8
1371084: 702 90 7 22 78
3725748814: 5 9 13 263 618 6 63 3
5014: 9 4 67 5 59
8949756887: 9 749 45 236 92 1 78 5
12735404423: 651 9 804 1 4 3 2 8 3 2 3
646670: 8 9 94 2 922 548 198 5
16351812864: 34 9 4 4 87 508 3 656
5157193: 967 16 86 6 61 9
273619631878: 81 1 30 74 49 917 6 60
176106761: 43 4 9 456 1 913 16 1 1
205031736: 75 1 6 707 2 9 84 117 2
1377145288: 5 5 6 2 2 393 3 63
2281138: 6 6 862 68 68 4 6 10 4
124998056: 1 6 53 830 29 2
1455104: 755 7 859 1 1 2 4 2 2 8 7
72505080501: 5 6 13 6 8 7 9 36 30 504
29662: 12 4 6 2 1 4 8 31 4 6 2 61
795931207120: 4 20 235 992 71 19
14142288157: 683 2 23 53 5 9 7
11991850492951: 9 8 122 9 214 98 99 3 7
247517: 9 7 5 2 3 70 1 4 3 715 56
1566540: 4 9 7 2 5 60 707 2 5 9 6 3
116894339160: 682 775 1 388 1 1 570
3149034: 3 798 829 494
6943257: 9 685 25 7 5 6
516566: 34 633 24 9 29
8882737463: 3 36 3 137 3 8 839 873
35346153: 6 949 30 37 5 1
45451: 156 291 55
20411: 141 120 76 2 69 499 5
211: 52 4 3
318318: 74 2 429
9521: 3 3 101 655 6 85 52
478814: 471 16 764 1 2 8 2
20831200: 6 9 3 341 1 7 586 5 26 8
8421671423: 73 6 628 32 7 33 2 6 16
3059: 7 174 27 97 5 3 1
7618647: 8 2 3 74 10 4 6 343 617
98022: 2 3 6 61 680 206 136
506594: 4 9 5 8 9 4 19 4 1 3 32 2
1335931: 26 48 214 5 571
213: 6 5 10 6
1587558: 6 5 332 417 6 9 5 13 63
168116776: 3 4 3 9 9 1 2 3 353 2 5 3
1115: 191 87 4
18264: 5 779 5 9 5 5 76 468 7 4
11371351224: 16 6 92 6 9 1 3 507 5 2 4
741: 3 7 8 37 2 507
3394050904: 84 834 8 8 5 6 364 904
16269255: 7 1 9 8 8 249 4 71 7 3 3 5
85050: 920 3 626 16 25
1063: 102 6 955
194477: 3 8 7 5 7 2 340 443
579954: 85 6 70 7 988
34284: 3 3 14 408 12
1989: 15 92 3 18 9
264880107: 6 766 1 860 67 9 958
21502273: 1 1 3 2 42 35 1 702 5 3
107653945983: 548 673 2 973 30
8249314828: 30 42 54 9 6 31 955
21520607688: 2 6 1 4 108 2 86 615 6 3
11718394: 7 3 3 336 8 9 4 5 12 914
2597376: 1 9 4 58 4 64
2558404: 78 410 8 3 1
97: 49 1 44 6 1
107846719: 99 5 1 4 3 81 6 1 72 2 4
1629768120: 9 9 287 20 534 8 3 8 5
587237: 1 49 8 7 2 39
27365665: 89 101 3 8 4 6 1 1 32 65
125681360: 359 227 2 67 4 8 2 8
82631988: 5 5 48 73 17 931 12
439374: 84 2 431 1 763 57 6
9274205506: 62 5 6 807 74 9 5 2 57
306747: 4 650 411 9 8 759 81
20350: 6 648 98 2 3 7 1 61 2 8 5
744941241: 88 328 1 95 258 236 1
27706: 722 2 6 66 8 3 6 257 17
8515458: 88 40 37 57 21 2
7986: 32 5 1 22 9 660
1805833503: 5 52 60 55 9 8 25 30 46
1991: 7 14 2 29 1 9 2 2 6 311
486189920: 88 92 7 6 99 20
91567498678: 1 938 4 5 22 328 30 36
49620619: 57 10 869 2 719
5812470: 15 533 727 47 58
48290: 50 828 55
19786909: 1 97 861 8 10
9152552: 7 1 3 6 79 2 7 876 928 2
535908897: 391 18 29 29 48 3 939
13409760188: 14 50 85 156 56 1 91
105111783: 4 27 25 4 7 56 8 3 8 9 9 7
1662765: 831 2 765
315710: 8 5 368 96 5 655
5778: 4 3 28 818 5 8
17971490583: 16 1 806 9 72 96 86 3 2
4950652499: 11 621 250 426
31825440: 982 3 8 40 27
56049900: 493 7 3 8 656 6 3 8 99
2457816522: 45 27 7 683 85 2 1 42
5707603971: 78 69 15 4 16 96 8 86 3
703209: 97 4 64 3 25 93 8 74 39
47946200: 1 4 317 92 7 7 6 36 680
15605270: 6 9 605 265 5
85754: 7 4 5 11 17 9 7 4 7 7 6 96
119732: 4 1 7 97 32
615616571: 7 8 9 8 29 6 2 3 1 656 9
326317567680: 568 493 83 4 78 45
39648326: 29 91 13 765 328
1640237818: 5 586 59 98 6 5 1 8 18
146553577: 3 44 5 71 7 93 4 4 1 3 3
21248503: 5 8 2 6 6 9 127 338 133
4738: 486 63 8 39 307
691995: 6 30 4 7 17 95
133789: 51 8 52 9 4 63 8 36 769
6845: 694 38 5 8 2 4 885
37631775540: 50 889 3 96 47 590 6
2955: 1 5 54 5 6
98084070: 49 7 84 33 9 448 70 9
744936: 73 91 1 5 53 34
22515025: 2 9 6 1 36 6 43 65 5 73
172299123: 20 9 444 8 65 9 2 490 1
277267: 6 592 8 42 68
2863714098954: 710 75 87 827 4 13 8 7
399404712: 8 2 87 8 59 6 2 6 991
591672859: 5 2 493 6 2 1 6 7 9 5 67
33096742: 547 8 7 6 23 2 6 730 5 7
235942116545: 7 3 4 8 907 515 827 2 4
45973: 922 469 30 52 9 1 31
111816391470: 278 94 3 9 74 7 73 930
3412320: 324 3 108 225 4 96
771436: 30 6 21 204 316
62039705: 802 442 5 104 9 30 35
583912: 3 4 8 8 9 279 1 29 75 56
2607477: 76 48 5 41 493
8079064: 990 5 4 7 811 677 4 8 5
158034274857: 67 63 96 39 2 96 52 56
4719928: 3 87 1 12 198 87 4
29017701: 3 105 4 92 6 1 1 60 41
139984: 7 5 66 2 397 8 4 674 6
16583: 5 724 305 4 883
145042338: 9 7 274 2 9 89 42
26187955869502: 9 9 5 672 2 675 9 7 433
5550150: 5 25 6 56 9 3 7 67 13 57
9403846: 281 87 9 5 63 5 9 57 94
3108: 416 5 650 22 446 15 2
2547024489: 5 1 713 5 4 92 6 99 9
67972: 74 1 1 86 347 2
1522724: 956 6 657 5 17 1 14
87141811: 27 8 9 6 931 8 2 6 199
65068: 64 279 766 11 13
2497572: 202 7 3 77 153
500957902: 3 918 476 504 382 46
334396832: 9 168 2 986 32 2 5 7 32
49290072: 96 647 1 1 51
1057074: 96 9 70 1 6 4
989310: 7 7 6 9 9 116 3 9 519 5 1
32701212: 890 5 6 4 8 9 8 75 9 9 9
9067500: 7 5 2 3 561 5 5 7 930 5 3
7713: 7 2 4 81 24 716 9
283657050705: 573 33 1 47 50 3 1 705
77240769: 8 40 82 370 399 8 61 9
103576: 77 12 3 6 9 5 28 6 3 6 4 4
36385440: 5 1 5 15 595 6 4 7 7 2
3479731616: 7 486 25 1 403 947 43
3283192941: 39 941 5 2 822
2940624245885: 7 1 6 365 5 303 6 2 76 4
88388: 1 7 9 330 9 5 56 1 24 92
79403731845: 79 403 7 3 1 835 1 8 2
95410: 84 7 37 390 94
112523176: 4 90 2 183 2 2 3 8 2 5 6
10443048: 638 4 31 2 132
4743516240: 700 60 8 78 65 78 8 42
2203: 25 7 6 11 578 564
549615749: 701 20 76 5 392
5499205: 91 58 14 720 6
1344562: 2 23 3 48 5 64
526: 28 6 3 19 3
673596019: 26 44 486 1 825 8 6 3 1
4128408668161: 1 455 9 643 5 2 4 35 9 8
5518584808: 24 3 6 27 3 4 32 87 808
5491: 6 94 8 7 556 4 4 7 14 2
1746406: 8 3 3 487 7
183348: 51 896 48 93 4
35184829647: 7 8 5 4 9 3 1 22 9 639 1 6
9532621: 95 8 597 3 630 2 2 7 63
959766528: 4 3 752 256 6 49
500897915: 2 6 58 5 346 1 6 4 26 2 9
595747: 851 7 46
4638631536: 2 75 8 66 1 82 903 594
953226572: 7 945 4 8 5 3 6 44 4 8 8 5
26509049: 3 16 3 34 3 6 47 982 69
1539: 29 56 6 3 9
647214: 186 8 117 9 401
1688: 7 31 61 8 688
2707936: 4 879 8 77 1
788513522: 5 4 1 8 50 1 6 2 838 10 4
4895442: 15 29 7 41 64 7 80 3 42
1144290442: 538 3 66 210 442
15416038512: 338 4 79 644 886
204227252776: 463 84 8 422 2 5 1 525
617155553: 3 748 7 12 821
859453388: 859 45 288 4 505
11532892791: 8 6 9 506 9 5 3 9 2 2 79 2
10966593: 6 4 2 4 47 3 1 1 5 405 3
6966237: 2 9 8 98 233
1286344759384: 143 424 4 4 202 6 111
417879: 1 8 239 3 40 533 4 3
21969395730: 119 191 6 4 512 9 10 8
13374: 83 2 75 844 80
17771215: 98 1 5 96 69 55 373 3
59776794: 1 9 9 5 73 122 9 48 561
986: 4 85 2 3 892
330101: 37 2 92 92 5
2400: 5 1 4 96 20
187913: 7 2 2 78 98 1 13
1135439: 760 166 9
145866: 8 2 90 477 2 3 9 2 3 9 7
7018: 25 6 3 559 9 216 1 933
3679: 9 33 3 703 3
2630067: 5 7 61 95 8 4 4 826 2 81
17930290226: 862 963 9 24 2 24
730334815: 53 8 5 3 251 4 53 7 3 2 5
611608800: 1 7 2 5 910 4 1 36 8 5 60
57452: 919 30 6 3 8 29 649 9 5
360872: 4 4 3 89 64 4 41 7 65
10651478278: 8 3 587 86 4 6 722
49984704: 22 966 42 8 7
60587528825: 5 6 8 98 644 2 4 2 828
568618: 631 7 81 11 160
56112: 199 4 534 265 56
25255782: 89 5 7 9 8 7 7 7 14 7 4 7
1750149: 940 7 88 4 7 3 6 3
35795958912: 57 439 27 2 236 7 809
7821604466: 682 235 7 80 8 2 1 61 4
5828542: 673 21 546 397 981
4213782: 7 3 55 64 6 57
2264455: 1 7 86 7 1 744 326 61
1071689050: 7 6 315 729 81
103517144: 42 90 3 74 748 8 268
8072414: 32 55 248 9 5
12675301254: 2 530 5 5 301 2 37 8 9
32298561: 9 72 851 39 7 3 5 61
1126392: 3 5 6 441 311 2 8 3 73 5
95023: 48 54 5 888 7
2091096945: 968 40 4 54 5 4 46
1377661: 35 7 41 8 59
593340: 15 1 86 5 950 46 1 9
35610840: 5 6 745 758 4
69427376: 4 7 57 107 60 887 72
6235883144: 6 23 588 29 2 45
1087682: 3 68 718 8 8 83
47541787942: 499 237 402 2 59 942
956726: 8 2 1 85 21 726
576: 8 8 9
8291426: 18 7 94 66 7 165 1
554761266: 2 9 4 2 59 29 943 46 8 3
86365743701: 862 2 3 3 9 76 7 4 3 70 1
349933390: 7 8 2 2 9 91 17 216 93
2318016: 5 197 98 54 24
175371: 889 1 197 37 4
8761554250: 2 51 4 24 8 89 205 8
265739: 816 65 99 9 5
569: 3 6 2 6 461
1643: 1 1 183 6 4 842 32 5
1024538: 5 191 3 6 3 91 7 6 7 6 9 2
186481680: 339 4 9 946 1 8 3 70 8
548586360: 49 5 2 9 13 3 1 8 2 2 63 2
846605763540: 639 430 2 670 662
339885: 561 122 5 59 455
5095209: 4 950 144 924 222 62
56451092: 11 47 38 995 6 97
393: 53 5 90 1 38
10835661: 5 1 5 46 7 5 9 372 5 661
41637: 8 52 3 3 2
201225: 2 285 31 15 7
14545563101: 647 61 91 405 20 5 1
27035281: 2 70 132 220 81
20700: 4 6 4 477 4 3 9 13 3 2 4
115266376870: 43 9 79 5 255 66 5 89
24568472: 103 9 9 2 3 8 86 1 1 4 3 1
18867: 5 5 319 547 99 58 6 3 3
92673769816: 3 253 4 9 6 353 74 7 8
5492716: 1 8 339 9 9 16
363504324240: 3 2 11 9 6 55 7 8 135 8
3704: 47 878 1 1 4
111616092075: 7 4 53 61 548 6 15 3 5 5
14146396320: 9 164 7 68 280 3 167
6928: 34 5 52 4 74 41
137814069685: 85 2 14 45 2 4 70 4 9 82
180707551: 606 2 864 8 43 3 220
2671200: 8 2 8 65 386 8 2 1 53 3 3
761348: 9 7 9 30 424 5 6 8 529 4
33525: 7 419 64 4 724 9
37238: 6 9 76 9 301 1
1101609706: 36 4 765 970 6
1848: 867 1 981
28603: 5 115 4 20 57 32 71
201546: 3 343 74 479 1 362
131636: 20 23 8 27 527 8
457: 66 384 7
4176: 32 3 5 214 6 3 9
1620: 2 42 5 41 18
1142067: 978 920 90 454 6
1484955485: 6 32 3 67 3 8 4 8 584
1944435: 6 6 1 6 233 976 9 435 3
339774: 11 2 29 1 43 7 492 99 6
550970347203: 9 8 38 75 7 4 34 80 1
197202468: 259 170 2 1 42 5 459
4380: 4 62 844 3 4
12457334: 4 77 54 1 3 344 62
124261707: 4 1 2 84 5 3 7 7 2 99 9 1
34129: 85 229 2 108 1
71064586565: 960 701 2 2 66 8 3 1
56866078: 75 12 757 23 8
296959: 9 81 7 403 3 99 249
4367458314: 2 1 205 787 55 2 3 1 2 9
5681955: 2 42 7 3 3 1 2 692 9 54 7
378830130: 61 12 745 517 963
8620430400: 4 62 3 123 2 50 3 314
5671366: 3 26 8 27 811 7 5 37 1
2844197736: 567 5 9 18 1 1 7 7 19 9 7
909248226: 9 7 36 4 49 2 628 3 2 7 4
224123896: 5 6 4 1 23 88 8 3 4
16192758: 763 856 19 8 61
2292620: 7 4 85 3 5 598 8 3 9 366
1970842: 984 682 737 2 4
6826814: 93 518 73
10732: 8 2 5 710 9 73
19150: 63 1 295 262 8
8092: 2 3 29 7 4 999 2 6 1 2 6 2
8436295: 843 10 43 4 4 949
2490387327: 8 3 6 5 387 325
3473196: 4 4 5 7 4 282 1 8 1 8 172
3826105498: 683 233 8 7 2 1 677
15155120: 7 5 721 5 8 2 8 6 1 4 17
75821020: 74 3 90 198 91
117344: 69 17 28 4 12
2003100: 63 1 97 4 275
16745: 3 9 4 9 6 2 4
195392: 7 1 413 463 9 54 7 399
9727471759: 97 270 3 70 94 7 756
2848: 22 3 6 6 9 117 5 3 7 2 8
12780: 930 471 4 725 2 3
98333054: 658 42 593 683 6 68
1397975040: 39 749 80 66 336
2299346: 63 2 8 817 3 36 8 7
786824: 798 5 2 61 8 59
588352: 3 61 852 642 280
2550896: 5 3 9 63 6 1 6 6 11 4 2 7
5430: 445 65 394 1 6
3060066755: 8 5 5 7 3 9 7 940 7 3 65 5
299177: 7 6 1 6 5 1 6 7 6 5 2 41
5009152: 4 93 2 68 99 16 16
13598585400: 7 97 9 205 80 7 7 5 5 8
3809009952782: 2 719 400 3 4 6 88 78 3
33961192: 6 1 8 7 343 321 8 900 2
338473: 7 354 62 8 73
1019050: 2 9 5 613 54 1 6 6 5 9 1 1
670144048: 5 66 28 5 88 6 752 61 7
29872128: 3 1 4 143 384 68
73794820: 1 8 8 371 132 6 2 5 4 7 8
6682761: 1 15 70 690 4
2360442: 4 983 6 5 4 5 44 9 5 4 1 1
39392630673: 123 602 2 7 6 76 66 7 2
664723036: 93 953 75 55 3 4
121400042: 596 797 80 871 65
776185490: 9 5 2 3 2 7 6 4 4 637 2 4
6025840: 229 92 452 7 28 35 9
37670787: 381 7 60 46 2 3 1 7 3 2
1173455656852: 75 3 2 30 377 5 61 8 3
95788: 77 9 37 834 90
721279: 3 1 15 7 32 7 2
233940483: 8 3 60 8 9 4 5 25 8 83 48
100452: 67 28 5 452 3
76453435: 304 101 498 6 89 5
6214: 7 54 1 36 77
366466464303: 56 88 26 7 354 295 8
201167: 5 992 69 2 4
3713603: 37 9 42 80 3
3078: 7 8 40 7 832 2 1 6 2 6 46
1171437344267: 1 99 5 59 262 2 56 26 5
54056393: 2 6 154 3 52 1 1 2 4 9 93
17318328: 11 997 81 820 6 35 48
1434477681: 1 284 150 1 477 679
7386168: 642 635 964 6 1
26731245: 343 2 698 4 8 111 2 1
27912: 29 40 58 650 6
777796: 184 66 8 64 68
11763586: 29 64 24 635 86
8270026: 9 1 80 9 80 25
227008925: 871 5 6 52 9 7 8 143
33991: 39 867 83 86 9
285: 25 1 56 3 1 4 26 8
28574927459: 7 831 437 835 6
7719198: 3 7 49 1 2 209 567 7 3 6
226997: 5 45 1 990 6
733937: 483 20 125 75 62
8096958720855: 238 84 49 9 6 45 854
1606970304546: 60 8 6 1 4 22 76 8 1 8 3 7
522786: 424 87 23 979
1402239: 254 8 690 3 81 68 10
308651805: 16 83 4 4 1 7 281 99
45553288: 4 28 4 80 33 13 3
74013154: 57 6 9 160 939 2 2 75 4
192: 64 2 64
10396254: 24 17 29 78 305 24
376546872: 6 375 4 338 731
773410379: 75 2 3 38 7 23 1 92 186
24570976326: 4 8 76 7 1 47 6 2 6 456 5
14148025: 9 515 54 5 27
6270069489: 7 7 736 836 6 94 90
229312936: 3 4 634 9 762 3 9 60 2 2
175745: 38 46 6 3 879
116432658: 1 717 6 1 6 2 61 7 372 6
914464664: 19 43 49 9 5 4 87 861 8
743435960: 920 5 91 4 276 6 289 8
14160: 175 7 90 8 748 616 4
953995: 9 5 68 7 12 91 5
844740: 23 68 896 1 3 285
3163872420: 2 163 20 71 4 8 6 4 22
1147617: 6 220 55 717 44 87
112770: 4 128 25 15 14
44626944186: 9 2 5 6 9 3 6 3 680 4 93 2
525251636: 496 755 699 74 14
147190320: 9 767 7 3 26 7 58 6 9 8 1
77071: 139 631 6 3 8
6912: 767 1 9
356617393: 312 381 3 692 701
3997266: 57 5 7 5 3 71 30 318 6
244: 6 2 4 45 148
7161: 7 5 1 8 80 8 18 3 1 8 79 1
14708624: 3 95 7 514 2 49 1
1733960: 54 351 5 856 560
3290: 459 7 27 4 46
22303320: 585 27 706 2 738 42
6129696: 2 671 99 92 4 8
51386810: 828 2 913 2 414 990 2
16918: 8 192 79 7 791 237 83
5238: 6 94 3 370 46 5 314 8 4
7169600: 442 52 558 2 80
25010177: 7 69 6 9 5 18 49 81 26
2392309343: 3 2 61 9 2 1 314 7 3 35 4
9164938: 7 7 3 7 96 515
50619405215: 93 93 730 879 2 5 2 17
34694788686: 95 8 5 7 4 412 8 4 4 45 6
33226256: 1 9 23 879 9 56
6494: 2 43 9 16 3 4 7
246157: 63 71 1 55 10 75
63632133: 776 82 13 5
324919: 7 2 2 8 322 1 2 7 322
97591: 88 3 7 5 72 24 7
77273322: 79 4 931 320 1
8729339: 4 3 7 7 85 8 5 96 3 35 7
12246984: 2 1 9 92 7 442 7 72
3338527798: 697 6 6 868 797
259914: 4 6 5 522 8 8 2 508 7 88
42274753044: 68 1 3 7 17 981 7 6 9
8561903755: 896 5 659 5 601 58 3 5
41095854076: 31 3 7 4 7 1 3 69 988 2 2
4180: 32 65 8 2 2
7913: 79 98 8 5 836
30538410443: 8 429 2 319 930 7 440
159524064: 942 8 7 6 4 126 4
4058252537: 34 85 9 9 7 2 7 6 601 8 5
1708499520: 8 5 5 57 2 5 42 954 82
356534: 5 582 4 8 76 8 6 3 29 4 4
144922210335: 31 22 17 7 1 7 374 73
24309686477856: 8 10 322 880 3 7 7 8 59
11181357476: 71 27 9 583 4 75
548337426522: 68 1 1 64 505 805
179: 83 70 4 15 7
881071: 799 3 817 69 1
6026684480: 8 76 46 355 607
9444: 847 1 965 8
22509426570: 8 77 7 6 829 75 1 87 5
3000300: 22 78 532 65 20 73
23287231584: 41 371 1 9 59 82 3 954
26813667: 2 6 98 8 19 25 96 9
4083599: 6 972 10 1 3 70 919
148915: 90 247 441 298
145456: 7 2 2 1 48 7 498 1 7 1 3 4
42: 1 14 12 16
36091522: 8 4 7 334 7 924 2 5 5 5
521: 6 1 418 92 4
201373110: 6 7 996 97 5 5 8 55 56 2
141720690: 3 69 80 5 8 11 6 611 15
10251: 78 24 35 8 7
75253: 928 81 31 45 9
19703: 2 8 5 7 35 9 7 2 26 58 1
22468: 30 66 8 215 5 103
678710: 391 4 6 746 67
8601854165: 8 4 7 1 3 139 9 942 5
41869156: 14 37 6 764 29
36992565232: 2 48 3 87 981 5 7 7 5 3 2
299880000: 2 9 1 8 2 14 25 60 735 4
491400: 5 1 183 80 4 5 10 36
1630: 4 12 43 9 40 893
37008928575: 480 34 4 6 3 927 8 7 72
408380544: 8 8 91 183 6 234 8 737
973: 90 9 8 48 9
1247425: 43 3 4 4 3 1 1 6 594 2 6
731: 66 20 7 50 79
7773950112: 706 72 2 11 9 72 1 5
8581: 59 28 21 59 48 565
517608: 2 7 20 186 468
7106641: 8 47 629 1 364 8 11 6 5
255596424: 7 850 961 402 92
688575313: 162 8 752 531 1
85704856: 26 3 758 2 6 6 4 6 946 3
96059: 923 31 3 3 58
388869: 56 8 868 7 5
31449: 78 93 36 4 45 5 424
421304315: 20 6 363 8 6 4 6 5 3 7 2 4
970: 8 1 6 5 2
1161660: 20 9 32 99 4 9 243 338
128853: 31 8 34 20 426 201
267293520: 8 85 6 4 149 7 4 1 38 6 2
933413418: 97 4 4 297 5 5 9 9 4 9 4 9
1480844029955: 75 3 95 68 4 448 656
33048: 16 2 580 54
906993247: 6 5 537 563 27 223
3913571: 5 7 1 6 25 26 7 2 27 40 1
448393127: 3 1 63 6 1 2 9 6 7 1 9 793
1236541: 5 1 34 4 6 10 4 99 625
2978614: 24 9 9 861 1
3684894: 6 82 27 277 94 92
1187136: 6 223 18 6 1 48
125890: 3 2 7 889 4 5 527 4 894
83266: 725 637 61 179 5
727592: 19 686 1 13 103
29012617: 495 8 6 24 6 8 1 7 9 1 6 4
25141069676: 804 49 43 873 7 17 9
2555700: 607 85 58 7 42
26424117: 4 7 3 6 74 85 2 7 65 78 7
1268918: 4 8 801 11 7 6 2 1 9 37 4
39636: 566 8 3 23 31
1392703578166: 973 226 3 36 477 166
689935: 181 8 1 195 224 8 15
1939: 6 2 562 691 72 606
10587544: 560 1 822 8 23
23564009: 530 234 190 175 34
895941933: 4 4 9 2 30 7 81 3 901 32
366516: 51 797 69 1 7 9
57316464: 59 681 7 7 3 8 47 6 2 12
16015708800: 970 14 70 2 78 108
7126: 643 2 67 3
75090600102: 44 8 3 436 2 7 5 48 4 6 2
6082630: 60 81 94 5 586 99
270761309: 835 68 3 81 4 4
1284275: 8 5 6 234 5 13 20 78 5
65240: 90 561 48 87 5
2268935600: 3 25 8 2 893 5 3 2 8 5 8 8
70734: 9 8 3 1 741 61 6 2 40 7 7
2230: 55 37 74 79 42
283374069: 40 865 126 65 65 4
65205: 15 6 9 345
7915415: 427 662 7 4 543
16125257: 47 6 19 59 908 85
322712041903: 8 5 3 38 996 9 8 1 903
17629973: 339 13 4 1 973
7040597767: 9 40 9 178 1 8 763 3 2 1
64709: 6 4 805 34 8 28 9
1537536873: 205 75 3 6 874
7143: 3 9 88 5 3
34181236: 531 47 264 56 157 4
7445: 4 840 341 38 6 9 48 50
28796: 9 24 65 6 95

View file

@ -0,0 +1,9 @@
190: 10 19
3267: 81 40 27
83: 17 5
156: 15 6
7290: 6 8 6 15
161011: 16 10 13
192: 17 8 14
21037: 9 7 18 13
292: 11 6 16 20