Tích chính phương

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: 1400 (p) Thời gian: 0.5s Bộ nhớ: 1G Input: SQPROD.inp Output: SQPROD.out

Bạn được cho một số nguyên dương \(P\). Tìm hai số nguyên dương \(L, D\) sao cho:

  • \(L + D = P\)
  • \(L \times D\) là số chính phương.

Input

  • Đọc từ tệp văn bản SQPROD.inp:
    • Dòng đầu tiên gồm một số nguyên dương \(T\) (\(1 \le T \le 10^4\)) là số lượng bộ dữ liệu cần xử lý.
    • Tiếp theo là \(T\) dòng, mỗi dòng gồm một số nguyên dương \(P\) (\(1 \le P \le 10^6\)).

Output

  • Ghi ra tệp văn bản SQPROD.out:
    • Gồm \(T\) dòng, dòng thứ \(i\) gồm hai số nguyên dương \(L, D\) là kết quả của bộ dữ liệu thứ \(i\) nếu tìm được; ngược lại, dòng thứ \(i\) gồm hai số -1 -1.

Example

Test 1

Input
3
2
5
7
Output
1 1
1 4
-1 -1
Note

Trong bộ dữ liệu đầu tiên, ta có \((1, 1)\) là một cặp số thỏa mãn vì \(1 + 1 = 2\)\(1 \times 1 = 1 = 1^2\).
Tương tự, trong bộ dữ liệu thứ hai ta có \(1 + 4 = 5\)\(1 \times 4 = 4 = 2^2\).

Scoring

  • \(30\%\) số điểm có \(P\) là số chẵn.
  • \(20\%\) số điểm khác có \(T = 1\).
  • \(20\%\) số điểm khác có \(T \le 30\).
  • \(10\%\) số điểm khác có \(P \le 1000\).
  • \(10\%\) số điểm khác có \(P \le 10^5\).
  • \(10\%\) số điểm còn lại không có giới hạn 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.