There is a mathematical algorithm that proves this works in all cases. However this rule is not actually all that impressive as it appears at first glance! The number of operations (comparisons/subtractions/multiplications) you need to do is equivalent to just long-dividing the number by 7.
Consider: each operation of the rule removes one digit from the end. But you could just as easily apply the rule like “If the first digit is >=7, subtract 7 from it. Else, subtract the biggest multiple of 7 that will fit from the first two digits.” To skip multiplying, you can use the following jump table: if the first digit is 6, subtract 54 from the first 2 digits, if 5 subtract 49, if 4: 35, if 3: 28, if 2: 14, if 1: 07. That will also remove one digit from the front! But now you are just doing long division.
okay I understand that this works, but is there a mathematical proof for this?
There is a mathematical algorithm that proves this works in all cases. However this rule is not actually all that impressive as it appears at first glance! The number of operations (comparisons/subtractions/multiplications) you need to do is equivalent to just long-dividing the number by 7.
Consider: each operation of the rule removes one digit from the end. But you could just as easily apply the rule like “If the first digit is >=7, subtract 7 from it. Else, subtract the biggest multiple of 7 that will fit from the first two digits.” To skip multiplying, you can use the following jump table: if the first digit is 6, subtract 54 from the first 2 digits, if 5 subtract 49, if 4: 35, if 3: 28, if 2: 14, if 1: 07. That will also remove one digit from the front! But now you are just doing long division.
https://math.stackexchange.com/questions/44459/proof-for-divisibility-by-7