Mã bài:
frac
Điểm:
1 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
512M
Dữ liệu vào:
stdin
Dữ liệu ra:
stdout
Tác giả:
Dạng bài
Trong toán học, "~n~ giai thừa", ký hiệu là ~n!~ là tích của ~n~ số tự nhiên đầu tiên với quy ước ~0!~ ~=~ ~1~.
Ví dụ: ~3! = 1 \times 2 \times 3~
Ta cũng có thể hiểu nó theo nghĩa đệ quy như sau: ~n! = (n - 1)! \times n~
Ở bài toán này, ta được cho trước số nguyên dương ~x~ ~(2 \le x \le 10^{12})~. Hãy tìm số nguyên dương ~n~ lớn nhất thỏa mãn ~n < x~ và biểu thức ~S = n! + (n-1)!~ chia hết cho ~x~.
Dữ liệu
- Dòng đầu tiên chứa số nguyên ~T~ là số testcase.
- ~T~ dòng tiếp theo, mỗi dòng chứa một số nguyên dương ~x~.
Kết quả
- Xuất ra màn hình ~T~ dòng, dòng thứ ~i~ là kết quả của testcase thứ ~i~ ~(1 \le i \le T)~.
Giới hạn
- ~1 \le T \le 10~.
- Subtask ~1~ ~(30\%)~: ~x \le 10^3~
- Subtask ~2~ ~(20\%)~: ~x \le 10^5~
- Subtask ~2~ ~(50\%)~: ~x \le 10^{12}~
Ví dụ
Dữ liệu
2
3
4
Kết quả
2
3
Giải thích
- Ở testcase ~1~, ~n=2~, ~S = 2! + 1! = 3~ thỏa mãn điều kiện.
- Ở testcase ~2~, ~n=3~, ~S = 3! + 2! = 8~ thỏa mãn điều kiện.
Bình luận