Hai ước số

Đề bài

Mô tả

Cho n số nguyên a1,a2,…,an.

Với mỗi ai, hãy tìm hai ước số d1>1 và d2>1 của ai sao cho gcd(d1+d2,ai)=1, hoặc thông báo rằng không tồn tại cặp ước như vậy.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n.
  • Dòng thứ hai chứa n số nguyên a1,a2,…,an.

Dữ liệu ra

In ra hai dòng, mỗi dòng gồm n số nguyên:

  • Số thứ i của dòng đầu và dòng thứ hai lần lượt là d1 và d2 tương ứng với ai (thỏa d1>1, d2>1, d1∣ai, d2∣ai và gcd(d1+d2,ai)=1).
  • Nếu không tồn tại cặp ước như vậy, in −1 ở cả hai dòng tại vị trí i.

Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 1≤n≤5·105
  • 2≤ai≤107

Ví dụ

Input Output Giải thích
10
2 3 4 5 6 7 8 9 10 24
-1 -1 -1 -1 2 -1 -1 -1 2 8
-1 -1 -1 -1 3 -1 -1 -1 5 3
Với a7=8: các ước lớn hơn 1 là 2,4,8, tổng của mọi cặp đều chia hết cho 2 nên không có đáp án. Với a10=24: gcd(8+3,24)=1; các cặp khác như (2,3) hay (3,8) cũng hợp lệ.
5
12 1024 999983 49 6
4 -1 -1 -1 2
3 -1 -1 -1 3
1024=210 và 49=72 chỉ có một ước nguyên tố, 999983 là số nguyên tố, nên cả ba đều không có đáp án. Với 12: gcd(4+3,12)=1.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0