[Quảng Trị - TS10 - 2025] Bài 3: Chia kẹo

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: CAU3.INP Output: CAU3.OUT

Tý có \(A\) cái kẹo chanh, \(B\) cái kẹo dừa và muốn chia tất cả cho vài người bạn. Tý nhẩm tính: nếu mỗi bạn nhận được số kẹo bằng nhau với mỗi loại thì sẽ có bao nhiêu cách để chia.

Ví dụ: Với \(A = 4, B = 12\), có ba cách chia:

  1. Nếu chia cho một bạn thì bạn đó sẽ nhận \(4\) cái kẹo chanh và \(12\) cái kẹo dừa;
  2. Nếu chia cho hai bạn thì mỗi bạn sẽ nhận \(2\) cái kẹo chanh và \(6\) cái kẹo dừa;
  3. Và nếu chia cho bốn bạn thì mỗi bạn sẽ nhận \(1\) cái kẹo chanh và \(3\) cái kẹo dừa.

Yêu cầu: Hãy giúp Tý tìm và ghi ra tất cả các cách có thể chia hết số kẹo cho các bạn sao cho mỗi bạn luôn nhận được số kẹo bằng nhau mỗi loại. Giả sử Tý có vô số bạn bè để chia kẹo.

Input

  • Một dòng duy nhất chứa hai số nguyên \(A, B\) cách nhau dấu cách (\(1 \le A, B \le 10^{17}\)).

Output

  • Tương ứng với mỗi cách chia ghi ra ba số nguyên \(n, x, y\) cách nhau dấu cách. Trong đó \(n\) là số bạn mà Tý có thể chia kẹo, \(x\)\(y\) là số kẹo chanh và kẹo dừa mà mỗi bạn nhận được trong cách chia đó. Mỗi cách chia ghi đúng một lần và theo thứ tự tăng của \(n\).

Example

Test 1

Input
4 12
Output
1 4 12
2 2 6
4 1 3

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(A, B \le 10^7\).
  • Subtask \(2\) (\(30\%\) số điểm): \(A, B \le 10^{12}\).
  • Subtask \(3\) (\(40\%\) số điểm): Không có ràng buộc gì thêm.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.