From ef53bbdf5a6648f6035f48c9bcbf0cf7499fba22 Mon Sep 17 00:00:00 2001 From: Nelson Stoik Date: Wed, 7 Oct 2020 21:22:24 -0600 Subject: [PATCH] Style Improvements for project_euler/problem_26 (#2958) * add typehints and docstrings * add typehint and default value * add typehint and default value. Removed unused variable. * do not modifiy the given solution * add doctests * update sol1 after running black * add typehint, docstring, and doctest * update sol2 after running black * add full problem statement and solution function with typehint and doctest * renamed original function instead of adding new one * don't alter original solution --- project_euler/problem_26/sol1.py | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/project_euler/problem_26/sol1.py b/project_euler/problem_26/sol1.py index cab8e0eb5..64e0bbfef 100644 --- a/project_euler/problem_26/sol1.py +++ b/project_euler/problem_26/sol1.py @@ -1,20 +1,38 @@ """ Euler Problem 26 https://projecteuler.net/problem=26 + +Problem Statement: + +A unit fraction contains 1 in the numerator. The decimal representation of the +unit fractions with denominators 2 to 10 are given: + +1/2 = 0.5 +1/3 = 0.(3) +1/4 = 0.25 +1/5 = 0.2 +1/6 = 0.1(6) +1/7 = 0.(142857) +1/8 = 0.125 +1/9 = 0.(1) +1/10 = 0.1 +Where 0.1(6) means 0.166666..., and has a 1-digit recurring cycle. It can be +seen that 1/7 has a 6-digit recurring cycle. + Find the value of d < 1000 for which 1/d contains the longest recurring cycle in its decimal fraction part. """ -def find_digit(numerator: int, digit: int) -> int: +def solution(numerator: int = 1, digit: int = 1000) -> int: """ Considering any range can be provided, because as per the problem, the digit d < 1000 - >>> find_digit(1, 10) + >>> solution(1, 10) 7 - >>> find_digit(10, 100) + >>> solution(10, 100) 97 - >>> find_digit(10, 1000) + >>> solution(10, 1000) 983 """ the_digit = 1