Solve 293 and 686
This commit is contained in:
29
python/e686.py
Normal file
29
python/e686.py
Normal file
@@ -0,0 +1,29 @@
|
||||
def p(leading_digits, count):
|
||||
n_cutoff = 18
|
||||
leading_digits_str = str(leading_digits)
|
||||
n_digits = len(leading_digits_str)
|
||||
j, current_leading, found = 1, 2, 0
|
||||
|
||||
while found < count:
|
||||
current_leading *= 2
|
||||
j += 1
|
||||
current_leading_str = str(current_leading)
|
||||
if current_leading_str[:n_digits] == leading_digits_str:
|
||||
found += 1
|
||||
current_leading = int(current_leading_str[:n_cutoff])
|
||||
return j
|
||||
|
||||
|
||||
def euler_686():
|
||||
assert p(12, 1) == 7
|
||||
assert p(12, 2) == 80
|
||||
assert p(123, 45) == 12710
|
||||
assert p(123, 100) == 28343
|
||||
assert p(123, 1000) == 284168
|
||||
return p(123, 678910)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
solution = euler_686()
|
||||
print("e686.py: " + str(solution))
|
||||
assert solution == 193060223
|
||||
Reference in New Issue
Block a user