Đồ thị nguyên tố

Đề bài

Mô tả

Cho số nguyên dương n. Hãy xây dựng một đồ thị vô hướng đơn (không có cạnh kép, không có khuyên) thỏa mãn đồng thời các điều kiện sau:

  1. Đồ thị có đúng n đỉnh, đánh số từ 1 đến n.
  2. Tổng số cạnh m là một số nguyên tố.
  3. Bậc (số cạnh kề) của mỗi đỉnh là một số nguyên tố.

Đồ thị có thể không liên thông.

Dữ liệu vào

Một dòng duy nhất chứa số nguyên n (3≤n≤1000).

Dữ liệu ra

  • Nếu không tồn tại đồ thị thỏa mãn, in ra −1.
  • Ngược lại, dòng đầu in số nguyên tố m (2≤m≤n(n−1)2) — số cạnh của đồ thị. Sau đó in m dòng, mỗi dòng chứa hai số nguyên ui,vi (1≤ui,vi≤n) mô tả một cạnh nối ui và vi.

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

Ràng buộc

  • 3≤n≤1000.

Ví dụ

Input Output Giải thích
4 5
1 2
2 3
3 4
4 1
1 3
Bậc các đỉnh là [3,2,3,2], tất cả đều nguyên tố. Số cạnh 5 cũng nguyên tố.
8 11
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 1
1 3
2 4
5 7
Bậc các đỉnh là [3,3,3,3,2,2,3,2], tất cả đều nguyên tố. Số cạnh 11 là số nguyên tố.

Ghi chú

Bộ chấm sẽ kiểm tra rằng đồ thị bạn đưa ra hợp lệ (đơn, không khuyên, đúng n đỉnh), số cạnh nguyên tố và bậc mỗi đỉnh nguyên tố.

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