Editorial for Kaninho với bài toán chia hết và giai thừa


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.

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!\)\([\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

There are no comments at the moment.