Editorial for Kaninho với bài toán chia hết và giai thừa
Submitting an official solution before solving the problem yourself is a bannable offence.
Đối với những bài chứa các phép nhân, chúng ta thường nghĩ đến phân tích thừa số nguyên tố.
Trong bài này, có thể phân tích \(M = p_1^{v_1} * p_2^{v_2}*...*p_n^{v_n}\) với \(p_1, p_2, ..., p_n\) là các số nguyên tố nhỏ hơn 100.
Hint 1: Bậc của một số nguyên tố \(p\) trong \(x!\) là \([\frac{x}{p}] + [\frac{x}{p^2}] + [\frac{x}{p^3}] + ...\)
Hint 2: Có thể kiểm tra xem \(x!\) chia hết cho \(M\), với \(x\) cho trước không?
Hint 3: Sử dụng hint 2, có thể tìm được \(x\) nhỏ nhất bằng cách nào.
Điều kiện để \(x!\) chia hết cho \(M\) là bậc của \(p_i\) trong \(x!\) phải không nhỏ hơn \(v_i\), với mọi \(i\). Tức là nếu số \(x\) được cho trước, ta có thể kiểm tra xem \(x!\) có chia hết \(M\) không. Đến đây, ta có thể nghĩ đến việc chặt nhị phân để tìm \(x\) nhỏ nhất thỏa mãn điều kiện trên.
Comments