[Algo cơ bản & nâng cao] Số học

Time limit: 1.0s / Memory limit: 64M

Points: 10

Nhập vào số nguyên dương ~n~, cho biết ~n~ có lớn hơn ~2022~ và tận cùng bởi chữ số ~2~ hay không?

Nếu có thì in ra YES, nếu không thì in ra NO.

Input

Dòng duy nhất gồm 1 số nguyên ~n \le 10^5~.

Output

In ra YES hoặc NO.

Sample

2222

Sample Output

YES

Time limit: 1.0s / Memory limit: 64M

Points: 10

Cho phương trình bậc ba ~ax^3+bx^2+cx+d=0~ với ~a,b,c,d~ là các số nguyên có trị tuyệt đối không vượt quá ~10^4~ và ~a \neq 0, \, d \neq 0.~ Yêu cầu đặt ra là in ra các nghiệm nguyên (nếu có) của phương trình này.

Input

Dòng đầu tiên gồm số nguyên dương ~n~ cho biết số lượng phương trình cần xét, trong đó ~1 \le n \le 10^5~. Với mỗi dòng tiếp theo sẽ gồm ~4~ số ~a,b,c,d~ thỏa mãn ràng buộc như đề bài.

Output

Với mỗi phương trình, nếu nó không có nghiệm nguyên thì in ra NO; nếu có nghiệm nguyên thì in ra các nghiệm đó, theo thứ tự từ nhỏ đến lớn.

Sample input 1

1
1 1 1 2

Sample output 1

NO

Sample input 2

2
1 1 1 1
1 -6 11 -6

Sample output 2

-1
1 2 3

Giải thích phương trình ~x^3+x^2+x+2=0~ không có nghiệm nguyên, còn phương trình ~x^3+x^2+x+1=(x+1)(x^2+1)=0~ có nghiệm nguyên duy nhất là ~x=-1~, còn phương trình ~x^3-6x^2+11x-6=(x-1)(x-2)(x-3)=0~ có ba nghiệm ~x=1,2,3~.

Subtasks:

  • Có 50% số test ứng với ~n \le 10~.
  • Có 50% số test không có ràng buộc gì thêm.

Time limit: 1.0s / Memory limit: 64M

Points: 10

Có hai bạn An và Bình chơi một trò chơi như sau: ban đầu, họ có một dãy gồm ~n ~ số nguyên dương ~a_1, a_2, \ldots, a_n~ phân biệt.

Ở mỗi lượt, người chơi sẽ được chọn hai số x, y bất kỳ trong dãy và tính giá trị của hiệu ~|x - y |~, nếu số này chưa xuất hiện trong dãy thì sẽ thêm vào dãy .

Đến lượt ai mà không thêm được số nào vào dãy thì thua. Biết rằng An đi trước và cả hai đều có cách chơi tối ưu. Hỏi ai là người có chiến lược thắng?

Input

Dòng đầu tiên chứa số nguyên dương ~n~ ~(1 \le n \le 10^5)~.

Dòng tiếp theo chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~ (~-10^9 \le a_i \le 10^9~).

Output

Dòng duy nhất, xuất ra BINH nếu Bình là người chiến thắng , ngược lại xuất ra AN.

Simple Input
4
23 30 28 56
Simple Output
BINH

Time limit: 1.0s / Memory limit: 64M

Points: 10

Đức Tài là một đại gia angel investor của công ty IUHCoder. Cty này có ~n > 1~ thành viên và trong tháng tới, có 2 dự án cần hoàn thành. Để khuyến khích cho công việc, đại gia đã mang đến 2 túi vàng, mỗi túi có ~n~ đồng vàng để phát cho các thành viên trong dự án. Trong dự án 1, đại gia dự kiến sẽ thưởng cho top ~x~ nhân viên xuất sắc nhất trong cty, mỗi người một số tiền giống nhau. Cũng tương tự với dự án 2, đại gia thưởng cho top ~y~ nhân viên xuất sắc nhất trong cty, mỗi người một số tiền giống nhau trong đó ~x \neq y~. Đại gia thắc mắc là nên chọn ~x, y~ thế nào để chênh lệch tiền thưởng giữa hai lần là ít nhất, hãy giúp đại gia tính ra con số đó nhé. Ngày xưa đại gia cũng code giỏi lắm nhưng từ lúc lo kinh doanh thì bỏ code hẳn rồi.

Input

Một số nguyên dương duy nhất là ~n~ với ~2 \le n \le 10^{14}.~

Output

Chênh lệch tiền thưởng ít nhất.

Sample input 1

15

Sample output 1

2

Sample input 2

100

Sample output 2

1

Giải thích: trong VD1, ta có thể chọn ~(x,y)=(3,5)~ thì số tiền thưởng lần lượt là ~5,3~ với chênh lệch là ~2.~ Còn trong VD2, ta có thể chọn ~(x,y)=(25,20)~ thì số tiền thưởng lần lượt là ~4,5~ với chênh lệch là ~1.~


Time limit: 1.0s / Memory limit: 64M

Points: 10

Biết rằng một số nguyên dương ~n~ nào đó không phải là lũy thừa ~2~ và có ~m~ ước dương. Hỏi số ~2n~ có ít nhất mấy ước dương?

Input

Một số nguyên dương ~m~ duy nhất với ~1 \le m \le 10^{16}~.

Output

Số ước ít nhất có thể có của ~2n~.

Sample input 1

3

Sample output 1

6

Sample input 2

15

Sample output 2

18

Giải thích: trong VD1, theo công thức tính số ước, ta thấy số ~n~ có thể có dạng ~p^2~ với ~p~ lẻ nên ~2n=2p^2~ sẽ có số ước là 6. Ở VD2, số ~n~ có thể có dạng ~p^{14}~ hoặc ~2^2.p^4~ hoặc ~2^4.p^2~ với ~p~ là số nguyên tố lẻ; tương ứng thì số ~2n~ có số lượng ước dương là ~30,20,18~ nên giá trị nhỏ nhất cần tìm là ~18.~


Time limit: 1.0s / Memory limit: 64M

Points: 10

Nhận thấy các con của mình rất chăm học thuật toán nên bố Tài SC (super cute) đã ra cho chúng một bài toán ngây thơ như sau: cho ~q~ số nguyên dương (không nhất thiết phân biệt), hãy tính tổng ước của từng số. Các con cảm thấy rất giận dỗi vì lại ra một bài căn bản như thế, cho đến khi chúng đọc được kỹ các subtask, hãy làm thử bài toán này của bố Tài nhé.

Input

Dòng đầu tiên là số nguyên dương ~q~.

Dòng tiếp theo là ~q~ số nguyên dương ~a_1, a_2, ..., a_q.~

Output

In ra ~q~ số là đáp số của bài toán.

Sample input

4
2 4 10 9

Sample output

3 7 18 13

Subtasks

  • Subtask 1 (15% số điểm): ~q ≤ 10^4; a_i ≤ 10^3~ với ~(1 ≤ i ≤ q)~
  • Subtask 2 (25% số điểm): ~q ≤ 10^5; a_i ≤ 10^5~ với ~(1 ≤ i ≤ q)~
  • Subtask 3 (35% số điểm): ~q ≤ 10^5; a_i ≤ 10^6~ với ~(1 ≤ i ≤ q)~
  • Subtask 4 (25% số điểm): ~q ≤ 10^6; a_i ≤ 10^{12}~ và ~a_{i+1} = a_i + 1~ với ~1 ≤ i <q.~</li>

Time limit: 1.0s / Memory limit: 64M

Points: 10

Để chuẩn bị cho kỳ thi Olympic, nhóm bạn NaTaLo đã luyện rất nhiều về công thức tính tổng các ước của một số nguyên dương, đến nỗi trong giấc mơ, bạn gặp một ác mộng như sau: Ban tổ chức cho các bạn một con số nguyên dương, chính là điểm kinh nghiệm của các bạn ấy hiện tại (tính theo đơn vị EXP). Các bạn cần tính tổng các ước số dương của số đó để được số mới (chú ý rằng nếu ~a~ chia hết cho ~b~ thì ~b~ là một ước của ~a~), có thể xem là kỹ năng của các bạn ấy tích lũy được sau mỗi năm là bao nhiêu. Cứ làm như thế nhiều lần cho đến khi nào đạt được level đủ để tham gia Siêu cúp, tức là một ngàn tỷ EXP, thì mới thôi! Các bạn tính xong và giật mình với số năm đó, hãy cùng các bạn ấy trải nghiệm nỗi sợ đó nhé.

Input

Một dòng là số nguyên dương ~n~ với ~1 \le n \le 10^{12}~ cho biết điểm kinh nghiệm của nhóm bạn hiện tại.

Output

Một số nguyên duy nhất là đáp số của bài toán (cho biết rằng giá trị này vẫn tính được trong kiểu Int64). Nếu không thực hiện được thì in ra ~-1.~

Sample input 1

999999999999

Sample output 1

1

Sample input 2

2

Sample output 2

28

Trong Ví dụ 1, các bạn ấy chỉ cần tốn một năm là đạt được; còn trong Ví dụ 2, các bạn ấy còn phải luyện thêm gần ~30~ năm: ~2 \to 3 \to 4 \to 7 \to 8 \to 15 \to ...~ giấc mơ Siêu cúp còn hơi xa xôi.


Time limit: 1.0s / Memory limit: 64M

Points: 10

Trong quá trình tranh giành chức vụ Cố vấn cao cấp của CLB H3.2, hai coder Đức Tài và Trần Lộc đã biểu diễn nhiều kỹ năng coding đỉnh cao của mình cho thầy Luna xem. Do qua nhiều vòng nhưng chưa phân thắng bại, trong vòng cuối, thầy Luna muốn dựa theo số phận để lựa chọn. Biết rằng Tài sinh vào tháng 9, còn Lộc sinh vào tháng 11 nên thầy cho một số ~n~ và bỏ đi một vị trí bất kỳ trong đó, thầy yêu cầu hai bạn chọn một số để điền vào vị trí kia sao cho số thu được chia hết cho tháng sinh của mình (cho phép số ~0~ đứng đầu). Ai thu được số lớn hơn (hoặc người kia không điền được số vào) thì thắng cuộc (tất nhiên ai cũng muốn điền số càng lớn càng tốt), còn nếu không phân thắng bại thì sẽ cho em Thiên Ban acc xanh dương CF làm chức vụ này.

Input: Một dòng duy nhất gồm một số ~n~ có giá trị không vượt quá ~10^{100000}~, trong đó có một vị trí được điền bởi dấu ?

Output:

Tên của Cố vấn cao cấp được chọn: Ban, Tai hoặc Loc.

Sample input:

202?

Sample output:

Tai

Giải thích: ta thấy Tài có thể điền số 5 vào để được 2025 chia hết cho 9, còn Lộc chỉ có thể điền số 4 vào để được 2024 chia hết cho 11. Vì số của Tài lớn hơn nên chức vụ sẽ thuộc về Tài.


Time limit: 1.0s / Memory limit: 64M

Points: 10

Bạn Nhân rất thích làm việc với các con số và bạn ấy đang nghiên cứu một cách biểu diễn các số trong những hệ cơ số khác nhau. Với mỗi số nguyên dương ~n~ trong hệ thập phân có dạng ~n=\overline{{{a}_{k}}{{a}_{k-1}}...{{a}_{2}}{{a}_{1}}{{a}_{0}}},~ trong đó ~0\le {{a}_{i}}\le 9,i=\overline{0,k}~, Nhân viết nó thành

~n={{a}_{k}}{{10}^{k}}+{{a}_{k-1}}{{10}^{k-1}}+...+{{a}_{2}}{{10}^{2}}+{{a}_{1}}{{10}^{1}}+{{a}_{0}}{{10}^{0}}.~

Và Nhân đã nghĩ ra một hệ cơ số khá đặc biệt và bạn rất thích thú với nó, đặt tên là hệ ~10'~ phân. Một số viết trong hệ ~10'~ – phân dạng ~n={{\overline{{{a}_{k}}{{a}_{k-1}}...{{a}_{2}}{{a}_{1}}{{a}_{0}}}}_{(1{0}')}}~ với ~0\le {{a}_{i}}\le 9,i=0..k~ sẽ có giá trị trong hệ thập phân thông thường là

~n={{a}_{k}}({{10}^{k}}+1)+{{a}_{k-1}}({{10}^{k-1}}+1)+...+{{a}_{2}}({{10}^{2}}+1)+{{a}_{1}}({{10}^{1}}+1)+{{a}_{0}}({{10}^{0}}+1)~.

Bằng hệ cơ số này, Nhân có thể mã hóa một số nguyên dương ~K~ nào đó bằng cách nhân giá trị của nó trong hệ thập phân và trong hệ ~10'~ – phân lại để được một số nguyên dương ~N~. Nhân đang thắc mắc là với số nguyên dương ~N~ cho trước thì số nguyên dương ~K~ nhỏ nhất là bao nhiêu. Bạn hãy giúp Nhân thực hiện công việc này nhé, sắp tốt nghiệp tới nơi rồi, không còn thời gian để vét cạn nữa.

Yêu cầu. Cho số nguyên dương ~N~ thỏa mãn ~0<N<{{10}^{18}}~. Hãy tìm số nguyên dương ~K~ nhỏ nhất sao cho giá trị của nó trong hệ thập phân và trong hệ ~10'~ – phân có tích bằng ~N~.</p>

Input. Một dòng duy nhất là số nguyên dương ~N~.

Output. Một dòng duy nhất là số nguyên dương ~K.~ Nếu không có số ~K~ nào thỏa mãn thì in ra ~-1.~

Sample input 1.

2

Sample output 1.

1

Sample input 2.

110

Sample output 2.

10


Time limit: 1.0s / Memory limit: 64M

Points: 10

Cho số nguyên dương ~n~ có tập hợp các ước nguyên tố là ~A~, hỏi có bao nhiêu số chính phương không vượt quá ~n~ mà tập ước nguyên tố của nó là tập con của ~A~?

Input

Số nguyên dương ~n~ với ~1 \le n \le 10^{14}.~

Output

Số lượng cần tìm.

Sample input

36

Sample output

5

Giải thích: các số thỏa mãn là ~1, 4, 9, 16, 36~.