def seven_zero(n): Seven is considered a lucky number in Western cultures, whereas zero is what nobody wants to be. Let us briefly bring these two opposites together by looking at positive integers that consist of some solid sequence of sevens, followed by some (possibly empty) solid sequence of zeros. Examples of integers of this form are 7, 77777, 7700000, 77777700, and 70000000000000. A surprising theorem proves that for any positive integer n, there exist infinitely many integers of such seven- zero form that are divisible by n. This function should return the smallest such seven-zero integer. Even though discrete math and number theory help, this exercise is not about coming up with a clever symbolic formula and the proof of its correctness. This is rather about iterating through the numbers of this constrained form of sevens and zeros efficiently and correctly in strictly ascending order, so that the function can mechanistically find the smallest working number of this form. This logic might be best written as a generator to yield such numbers. The body of this generator consists of two nested loops. The outer loop iterates through the number of digits d in the current number. For each d, the inner loop iterates through all possible k from one to d to create a number that begins with a block of k sevens, followed by a block of d-k zeros. Most of its work done inside that helper generator, the seven_zero function itself will be short and sweet. Expected result 17 רר7ררררד77ר77777

C++ for Engineers and Scientists
4th Edition
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Bronson, Gary J.
Chapter4: Selection Structures
Section: Chapter Questions
Problem 14PP
icon
Related questions
Question
Sevens rule, zeros drool
def seven_zero(n):
Seven is considered a lucky number in Western cultures, whereas zero is what nobody wants to be.
Let us briefly bring these two opposites together by looking at positive integers that consist of some
solid sequence of sevens, followed by some (possibly empty) solid sequence of zeros. Examples
integers of this form are 7, 77777, 7700000, 77777700, and 70000000000000. A surprising
theorem proves that for any positive integer n, there exist infinitely many integers of such seven-
zero form that are divisible by n. This function should return the smallest such seven-zero integer.
Even though discrete math and number theory help, this exercise is not about coming up with a
clever symbolic formula and the proof of its correctness. This is rather about iterating through the
numbers of this constrained form of sevens and zeros efficiently and correctly in strictly ascending
order, so that the function can mechanistically find the smallest working number of this form.
This logic might be best written as a generator to yield such numbers. The body of this generator
consists of two nested loops. The outer loop iterates through the number of digits d in the current
number. For each d, the inner loop iterates through all possible k from one to d to create a number
that begins with a block of k sevens, followed by a block of d-k zeros. Most of its work done inside
that helper generator, the seven_zero function itself will be short and sweet.
Expected result
n
17
ר77ך77ררררררךררר
42
0ררר
103
דדרררר777
ר777777ררךררו
77700
77700
2**50 700000000000000000000000000000000000000000000000000
12345 (a behemoth that consists of 822 sevens, followed by a single zero)
This problem is adapted from the excellent MIT Open Courseware online textbook "Mathematics for
Computer Science" (PDF link to the 2018 version for anybody interested) that, like so many other
non-constructive combinatorial proofs, uses the pigeonhole principle to prove that some solution
must exist for any integer n, but provides no clue about where to actually find that solution. Also as
proven in that same textbook, whenever n is not divisible by either 2 or 5, the smallest such number
will always consist of some solid sequence of sevens with no zero digits after them. This can speed
up the search by an order of magnitude for such friendly values of n.
Transcribed Image Text:Sevens rule, zeros drool def seven_zero(n): Seven is considered a lucky number in Western cultures, whereas zero is what nobody wants to be. Let us briefly bring these two opposites together by looking at positive integers that consist of some solid sequence of sevens, followed by some (possibly empty) solid sequence of zeros. Examples integers of this form are 7, 77777, 7700000, 77777700, and 70000000000000. A surprising theorem proves that for any positive integer n, there exist infinitely many integers of such seven- zero form that are divisible by n. This function should return the smallest such seven-zero integer. Even though discrete math and number theory help, this exercise is not about coming up with a clever symbolic formula and the proof of its correctness. This is rather about iterating through the numbers of this constrained form of sevens and zeros efficiently and correctly in strictly ascending order, so that the function can mechanistically find the smallest working number of this form. This logic might be best written as a generator to yield such numbers. The body of this generator consists of two nested loops. The outer loop iterates through the number of digits d in the current number. For each d, the inner loop iterates through all possible k from one to d to create a number that begins with a block of k sevens, followed by a block of d-k zeros. Most of its work done inside that helper generator, the seven_zero function itself will be short and sweet. Expected result n 17 ר77ך77ררררררךררר 42 0ררר 103 דדרררר777 ר777777ררךררו 77700 77700 2**50 700000000000000000000000000000000000000000000000000 12345 (a behemoth that consists of 822 sevens, followed by a single zero) This problem is adapted from the excellent MIT Open Courseware online textbook "Mathematics for Computer Science" (PDF link to the 2018 version for anybody interested) that, like so many other non-constructive combinatorial proofs, uses the pigeonhole principle to prove that some solution must exist for any integer n, but provides no clue about where to actually find that solution. Also as proven in that same textbook, whenever n is not divisible by either 2 or 5, the smallest such number will always consist of some solid sequence of sevens with no zero digits after them. This can speed up the search by an order of magnitude for such friendly values of n.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 2 images

Blurred answer
Knowledge Booster
Array
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ for Engineers and Scientists
C++ for Engineers and Scientists
Computer Science
ISBN:
9781133187844
Author:
Bronson, Gary J.
Publisher:
Course Technology Ptr