# Count divisibles in range def count_divisibles_in_range(start, end, n): Let us take a breather by tackling a problem simple enough that its solution needs only a couple of conditional statements and some arithmetic, but not even one loop or anything even more fancy

Count divisibles in range def count_divisibles_in_range(start, end, n): Let us take a breather by tackling a problem simple enough that its solution needs only a couple of conditional statements and some arithmetic, but not even one loop or anything even more fancy. The difficulty is coming up with the conditions that cover all possible cases of this problem exactly right, including all of the potentially tricksy edge and corner cases, without being off-by-one . Given three integers start, end and n so that start <= end, count how many integers between start and end, inclusive, are divisible by n. Sure, you could solve this problem with the list comprehension one-liner return len([x for x in range(start, end+1) if x % n == 0]) but of course the automated tester is designed so that anybody trying to solve this problem in such a blunt fashion will only find themselves running out of both time and space! Your code should have no loops at all , but use only integer arithmetic and conditional statements to get to the truth. Also, be careful with various edge cases and off-by-one pitfalls lurking in the bushes. Note that either start or end can be negative or zero, but n is guaranteed to be greater than zero. start end n Expected result 7 28 4 6 -77 19 10 9 -19 -13 10 0 1 10**12 - 1 5 199999999999 0 10**12 - 1 5 200000000000 0 10**12 5 200000000001 -10**12 10**12 12345 162008911

-25-