chạy trâu với mấy số n nhỏ là thấy quy luật à
p = 1
for n in range(1, 15):
p *= 2
x = 1
while (3**x - 1) % p != 0: x += 1
print("2^{{{}}} &\mid 3^{{{}}} - 1 \\\\".format(n, x))
n=1: 3^1 - 1 = 2 chia hết cho 2^1 = 2
hay ghi lại là :V
\begin{aligned}
2^{1} &\mid 3^{1} - 1 \\
2^{2} &\mid 3^{2} - 1 \\
2^{3} &\mid 3^{2} - 1 \\
2^{4} &\mid 3^{4} - 1 \\
2^{5} &\mid 3^{8} - 1 \\
2^{6} &\mid 3^{16} - 1 \\
2^{7} &\mid 3^{32} - 1 \\
2^{8} &\mid 3^{64} - 1 \\
2^{9} &\mid 3^{128} - 1 \\
2^{10} &\mid 3^{256} - 1 \\
2^{11} &\mid 3^{512} - 1 \\
2^{12} &\mid 3^{1024} - 1 \\
2^{13} &\mid 3^{2048} - 1 \\
2^{14} &\mid 3^{4096} - 1 \\
\end{aligned}
thấy quy luật chưa :V :V
chứng minh thì cũng tương đối “dễ”:
giả sử 3^x - 1 chia hết cho 2^n và x là nhỏ nhất, bây giờ cần tìm y > 0 nhỏ nhất sao cho 3^{x+y} - 1 chia hết cho 2^{n+1}. Ta có: 3^{x+y} - 1 = 3^x3^y - 1 = 3^x3^y - 3^y + 3^y - 1 = 3^y(3^x - 1) + 3^y - 1. Vì 3^y ko chia hết cho 2 nên muốn tổng này chia hết cho 2^n thì 3^y - 1 phải chia hết cho 2^n, cần y nhỏ nhất mà theo giả thuyết thì x là số nhỏ nhất để 3^x - 1 chia hết cho 2^n, vậy y = x. Khi này 3^y(3^x - 1) + 3^y - 1 = 3^x(3^x - 1) + 3^x - 1 = (3^x - 1)(3^x + 1), vì 3^x là số lẻ nên 3^x + 1 là số chẵn, vậy (3^x - 1)(3^x + 1) = 3^{2x} - 1 sẽ chia hết cho 2^n * 2 = 2^{n+1}.
quy luật này có vấp ở chỗ 2^3 ko xài 3^4 - 1 mà xài 3^2 - 1 như 2^2 vì chứng minh trên chưa tính tới trường hợp 3^x - 1 chia hết cho cả 2^{n+1} sẵn rồi :V Để chứng minh 2^3 là trường hợp duy nhất cũng dễ: giả sử 3^x - 1 chia hết cho 2^n nhưng ko chia hết cho 2^{n+1}, và 3^{2x} - 1 chia hết cho tận 2^{n+2}. Tách 3^{2x} - 1 ra thành (3^x - 1)(3^x + 1), thì vì 3^x - 1 chỉ chia hết cho 2^n nên để (3^x - 1)(3^x + 1) chia hết cho 2^{n+2} thì 3^x + 1 phải chia hết cho 4. Vì 3 \equiv -1 \mod 4 nên để 3^x + 1 chia hết cho 4 thì 3^x phải đồng dư -1 mod 4, hay (-1)^x \equiv -1 \mod 4, hay x là số lẻ. Nhưng theo quy luật double ở trên: x thành 2x, 2x thành 4x, v.v… thì ta có công thức tổng quát của x là x = 2^k với k \ge 0, vậy chỉ có 1 x lẻ duy nhất là x = 2^0 = 1, hay chính là trường hợp 3^1 - 1 chia hết cho 2^1 nhưng ko chia hết cho 2^2, và 3^2 - 1 nhảy cóc 1 bước, chia hết cho tận 2^3.
vậy công thức tổng quát là \boxed{
\begin{cases}
x = n &\text{if } n \le 2 \\
x = 2^{n-2} &\text{if } n > 2
\end{cases}
}