A common rule for checking whether an integer is divisible by 3 is to consider the sum of its digits.

For example, 12345 is divisible by 3 because 1 + 2 + 3 + 4 + 5 = 15, and 15 is divisible by 3.

Similarly, 123456 is divisible by 3 and 1234567 is not.

Above, we are saying if the sum of an integer’s digits is divisible by 3, then the integer is divisible by 3.

What about the reverse implication, i.e. if an integer is divisible by 3, then the sum of its digits is divisible by 3?

3 x 12345 = 37035 is divisible by 3 thus the sum of its digits must also be divisible by 3. Checking this, we have 3 + 7 + 0 + 3 + 5 = 18 which is indeed divisible by 3.

Similary, 3 x 234829042390482 = 704487127171446 is divisible by 3 and 7 + 0 + 4 + 4 + 8 + 7 + 1 + 2 + 7 + 1 + 7 + 1 + 4 + 4 + 6 = 63 is divisible by 3.

If both implications are true, this means the set of integers that are divisble by 3 is exactly the same set of integers whose sum of digits is divisible by 3.

In other words, it is impossible to find an integer that is divisible by 3 whose sum of its digits is not divisible by 3 or vice versa.

To “approximately” check if this is true in Python,

def get_sum_of_digits(n):
return sum(int(i) for i in list(str(n)))

i = 0
while True:
sum_of_digits = get_sum_of_digits(i)
if ((i % 3 == 0 and sum_of_digits % 3 != 0) or
(i % 3 != 0 and sum_of_digits % 3 == 0)):
print(f'The double implication (equivalence) is false for {i}!')
break
else:
print(i)
i += 1


Which for me ran until i = 6624839 before I quit the script.

Unfortunately, whilst we can check our double implication is true for an arbitrarily large number of integers, we cannot check it in its full form.

As the set of integers is infinite, it would take us an infinity to check using the method above!

However, we can achieve the above using mathematical logic:

$Let\;n\;\in\;\mathbb{N}.$

$We\;define\;\varphi(n)\;as\;the\; sum\;of\;the\;digits\;of\;n\;and\;d(n)\;as\;the\;number\;of\;digits$

$of\;n. \; For\;example,\;\varphi(123)=6\;and\;d(n)=3$

$Show \; that:$

$where \; p=3$

We proceed by induction.

We note

and use the notation $n=a_{1}\cdots a_{k}$

E.g. for $n=231$, $a_1=2$, $a_2=3$, $a_3=1$.

Let’s verify $\mathcal{P}(0)$,

which is true as $\varphi(0)=0$.

Let $n \in \mathbb{N}$.

Suppose $\mathcal{P}(k)$, $k \in [0..n]$.

We want to show $\mathcal{P}(n+1)$,

If $n+1 \lt 10$, then $\varphi(n+1)=n+1 \implies \mathcal{P}(n+1)$.

If $n+1 \geq 10$, we have the following cases:

• $n+1=a_1\cdots a_{k-1}9, \; k \geq 2$; it follows that $(n+1)-9 = a_1\cdots a_{k-1}0$.

Thus

• $n+1=a_1\cdots a_{k}, \; a_k \neq 9$

Suppose $d(n+1)=d((n+1)-9)$. Then

If we write $(n+1)-9=b_{1}\cdots b_{k}$, we have $b_{k-1}=a_{k-1}-1$, $b_{k}=a_{k}+1$ and $a_i=b_i, \; i \in [1..k-2]$

Therefore

Thus

Otherwise, $d(n+1)\neq d((n+1)-9) \implies d(n+1) = d((n+1)-9) +1$

Thus

and

so

which gives

Conclusion:

$\mathcal{P}(0)$ true, and for all $n \in \mathbb{N}$,

thus by induction, $\mathcal{P}(n)$, $n \in \mathbb{N}$, QED.

We have showed $(*)$ is true for $p=3$.

Is $(*)$ true for all $p$?

No, for $p=2$ and $n=10$, we have $10 \mod 2 =0$ but $\varphi(10) \mod 2 =1$.

Are there any other $p$ for which $(*)$ is true?

How would changing the base from ten affect any results?