854 từ
4 phút đọc
Phương pháp đếm số bội, ước của một số trên một khoảng xác định

0. Giới thiệu#

Trong quá trình giải một số bài toán toán học, đặc biệt ở nội dung số học, ta thường gặp các bài toán yêu cầu đếm số ước hoặc số bội của một số trên một khoảng xác định. Nếu thực hiện bằng cách liệt kê trực tiếp các giá trị trong khoảng, việc tính toán sẽ tốn nhiều thời gian và dễ phát sinh sai sót, nhất là khi khoảng xét lớn. Vì vậy, bài viết này trình bày một phương pháp tiếp cận hiệu quả dựa trên việc sử dụng máy tính cầm tay, kết hợp với các lập luận và chứng minh toán học cơ bản, nhằm giúp tính nhanh và chính xác số ước, số bội của một số trên một khoảng xác định.

Để thuận tiện, trong bài viết này chúng ta quy ước như sau:

  • x\displaystyle \left\lfloor x \right\rfloor là phần nguyên của x\displaystyle x, tương đương với Int(x)\text{Int(x)} trong máy tính cầm tay.
  • λ\displaystyle \lambda là một số nguyên dương rất lớn. Khi bấm máy, ta thay λ\displaystyle \lambda bằng 1811\displaystyle 18^{11} hoặc một số khác đủ lớn.

1. Đếm số bội#

Đề bài#

Cho ba số nguyên dương n,L,R\displaystyle n, L, R thỏa mãn LR\displaystyle L \le R. Đếm số bội của n\displaystyle n trong đoạn [L;R]\displaystyle \left[ L; R \right].

Cách giải#

Ta biết rằng các bội của n\displaystyle n có dạng kn\displaystyle kn, với kk là số nguyên dương bất kỳ.

Như vậy, trong đoạn [1;qn+r] (qN, 0r<n)\displaystyle \left[ 1; qn + r \right] \ \left( q \in \mathbb{N}, \ 0 \le r < n \right) có đúng q\displaystyle q bội của n\displaystyle nn,2n,3n,,qn\displaystyle n, 2n, 3n, \dots, qn

Lại có q=qn+rn\displaystyle q = \left\lfloor \dfrac{qn + r}{n} \right\rfloor

Vậy trong đoạn [1;x] (xN)\displaystyle \left[ 1; x \right] \ \left( x \in \mathbb{N} \right) có đúng xn\displaystyle \left\lfloor \dfrac{x}{n} \right\rfloor bội của n\displaystyle n

Mặt khác, ta có [L;R]=[1;R]\[1;L1]\displaystyle \left[ L; R \right] = \left[ 1; R \right] \backslash \left[ 1; L - 1 \right]

Vậy số bội của n\displaystyle n trong [L;R]\displaystyle \left[ L; R \right]M=RnL1n\displaystyle M = \left\lfloor \dfrac{R}{n} \right\rfloor - \left\lfloor \dfrac{L - 1}{n} \right\rfloor

2. Đếm số ước#

Đề bài#

Cho ba số nguyên dương n,L,R\displaystyle n, L, R thỏa mãn LR\displaystyle L \le R. Đếm số ước của n\displaystyle n trong đoạn [L;R]\displaystyle \left[ L; R \right].

Cách giải#

Xét hàm r(x)=nxnx\displaystyle r(x) = \frac{n}{x} - \left\lfloor \frac{n}{x} \right\rfloor. Ta có:

  • r(x)=0\displaystyle r(x) = 0 nếu nn chia hết cho xx

  • r(x)(0;1)\displaystyle r(x) \in \left(0; 1\right) nếu nn không chia hết cho xx

Xét hàm f(x)=xλ\displaystyle f(x) = \sqrt[\lambda]{x}. Ta có:

  • f(x)=0\displaystyle f(x) = 0 nếu x=0x = 0

  • f(x)1\displaystyle f(x) \approx 1 nếu 0<x<10 < x < 1

Từ hai nhận xét trên, ta có:

  • nxnxλ=0\displaystyle \sqrt[\lambda]{\frac{n}{x} - \left\lfloor \frac{n}{x} \right\rfloor} = 0 nếu nn chia hết cho xx

  • nxnxλ1\displaystyle \sqrt[\lambda]{\frac{n}{x} - \left\lfloor \frac{n}{x} \right\rfloor} \approx 1 nếu nn không chia hết cho xx

Xét tổng S=x=LRnxnxλ\displaystyle S = \sum_{x = L}^{R} \sqrt[\lambda]{\frac{n}{x} - \left\lfloor \frac{n}{x} \right\rfloor}

Mỗi số nguyên xx sao cho nn không chia hết cho xx đóng góp xấp xỉ 11 đơn vị vào tổng SS, trong khi mỗi số nguyên xx sao cho nn chia hết cho xx đóng góp 00 đơn vị vào tổng SS. Vậy SS xấp xỉ bằng số các số nguyên xx sao cho xx không phải là ước của nn.

Mà trong đoạn [L;R]\left[ L; R \right]RL+1R - L + 1 số nguyên.

Vậy số ước của nn trong [L;R]\left[ L; R \right]DRL+1S\displaystyle D \approx R - L + 1 - S

Áp dụng#

Có bao nhiêu cấp số cộng có ít nhất 2020 số hạng thỏa mãn các số hạng của cấp số cộng là các số tự nhiên, công sai của cấp số cộng bằng 22 và tổng tất cả các số hạng bằng 63006300?

Giả sử cấp số cộng này có nn số hạng, số hạng đầu tiên là u1u_1.

Theo đề bài ta có tổng các số hạng bằng 63006300, nói cách khác:

6300=n[2u1+(n1)d]2    6300=2n(u1+n1)2    6300=n(u1+n1)    6300n=u1+n1    u1=6300nn+1\begin{aligned} & 6300 = \frac{n\left[2u_1 + \left(n-1\right)d\right]}{2} \\ \iff & 6300 = \frac{2n\left(u_1 + n - 1\right)}{2} \\ \iff & 6300 = n\left(u_1 + n - 1\right) \\ \iff & \frac{6300}{n} = u_1 + n - 1 \\ \iff & u_1 = \frac{6300}{n} - n + 1 \end{aligned}

Các số hạng của cấp số cộng là số tự nhiên khi và chỉ khi u1u_1 là số tự nhiên, tức là u1u_1 nguyên và u10u_1 \ge 0.

u1u_1 là số nguyên khi và chỉ khi 63006300 chia hết cho nn, tức là nn là ước của 63006300.

u10    6300nn+10    6300n2+nn0    n2+n+63000    78,87n79,87\begin{aligned} u_1 \ge 0 \iff & \frac{6300}{n} - n + 1 \ge 0 \\ \iff & \frac{6300 - n^2 + n}{n} \ge 0 \\ \iff & -n^2 + n + 6300 \ge 0 \\ \iff & -78{,}87 \le n \le 79{,}87 \end{aligned}

Mà theo đề bài ta có n20n \ge 20.

Với mỗi giá trị nn thỏa mãn điều kiện, ta xác định được đúng một cấp số cộng tương ứng thỏa mãn yêu cầu bài toán.

Vậy bài toán trở thành: Tìm số ước của 63006300 trong đoạn [20;79]\left[20; 79\right].

Bấm máy (7920+1)x=2079(6300xInt(6300x)1811)\displaystyle\left(79 - 20 + 1\right) - \sum_{x = 20}^{79}\left(\sqrt[18^{11}]{\frac{6300}{x} - \text{Int}\left(\frac{6300}{x}\right)}\right), ta được kết quả là 1414.

Vậy có 1414 cấp số cộng thỏa mãn yêu cầu bài toán.