Python Implementation of Problem 206
View source code here on GitHub!
Includes
Problem Solution
1"""
2Project Euler Problem 206
3
4This one ended up being a regex problem. I am sure there is a more clever way
5to go about it, but this way works fairly quickly.
6
7Problem:
8
9Find the unique positive integer whose square has the form 1_2_3_4_5_6_7_8_9_0,
10where each “_” is a single digit.
11"""
12from re import compile
13
14
15def main() -> int:
16 pattern = compile("1.2.3.4.5.6.7.8.9.0")
17 minimum = 1010101010 # sqrt of minimum number matching pattern
18 maximum = 1389026624 # sqrt of maximum number matching pattern
19 step = 10 # the square is a multiple of 10, which means it's a multiple of
20 # 100, since 2 and 5 are both prime. Therefore we can step by at least 10
21 for x in range(minimum, maximum, step):
22 if pattern.match(repr(x * x)):
23 return x
24 return -1 # pragma: no cover