project_euler.problem_043.sol1 ============================== .. py:module:: project_euler.problem_043.sol1 .. autoapi-nested-parse:: Problem 43: https://projecteuler.net/problem=43 The number, 1406357289, is a 0 to 9 pandigital number because it is made up of each of the digits 0 to 9 in some order, but it also has a rather interesting sub-string divisibility property. Let d1 be the 1st digit, d2 be the 2nd digit, and so on. In this way, we note the following: d2d3d4=406 is divisible by 2 d3d4d5=063 is divisible by 3 d4d5d6=635 is divisible by 5 d5d6d7=357 is divisible by 7 d6d7d8=572 is divisible by 11 d7d8d9=728 is divisible by 13 d8d9d10=289 is divisible by 17 Find the sum of all 0 to 9 pandigital numbers with this property. Functions --------- .. autoapisummary:: project_euler.problem_043.sol1.is_substring_divisible project_euler.problem_043.sol1.solution Module Contents --------------- .. py:function:: is_substring_divisible(num: tuple) -> bool Returns True if the pandigital number passes all the divisibility tests. >>> is_substring_divisible((0, 1, 2, 4, 6, 5, 7, 3, 8, 9)) False >>> is_substring_divisible((5, 1, 2, 4, 6, 0, 7, 8, 3, 9)) False >>> is_substring_divisible((1, 4, 0, 6, 3, 5, 7, 2, 8, 9)) True .. py:function:: solution(n: int = 10) -> int Returns the sum of all pandigital numbers which pass the divisibility tests. >>> solution(10) 16695334890