Cây ước số

Đề bài

Mô tả

Một cây ước số là một cây có gốc thoả mãn đồng thời ba điều kiện sau:

  • Mỗi đỉnh của cây chứa một số nguyên dương.
  • Số ghi ở mỗi đỉnh lá là một số nguyên tố.
  • Với mỗi đỉnh trong (đỉnh có ít nhất một con), số ghi ở đỉnh đó bằng tích các số ghi ở tất cả các con của nó.

Cho n số nguyên phân biệt a1,a2,,an. Hãy xây dựng một cây ước số chứa tất cả các số này, nghĩa là với mỗi ai phải có ít nhất một đỉnh của cây ghi số ai. Ngoài các số đã cho, cây được phép chứa thêm các đỉnh với giá trị tuỳ ý, miễn là ba điều kiện trên vẫn đúng.

Nhiệm vụ của bạn là tìm số đỉnh nhỏ nhất có thể của một cây ước số như vậy.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên n: số lượng số đã cho.
  • Dòng thứ hai chứa n số nguyên phân biệt a1,a2,,an.

Dữ liệu ra

Một số nguyên duy nhất: số đỉnh nhỏ nhất của cây ước số chứa tất cả n số đã cho.

Ràng buộc

  • 1n8
  • 2ai1012
  • Các ai đôi một phân biệt.

Ví dụ

Input Output Giải thích
2
6 10
7 Gốc ghi 60 có hai con là 610. Đỉnh 6 có hai con lá 2,3; đỉnh 10 có hai con lá 2,5. Tổng cộng 1+2+4=7 đỉnh.
4
6 72 8 4
12 Gốc ghi 432 có hai con 726. Đỉnh 72 có ba con 8,3,3; đỉnh 8 có hai con 4,2; đỉnh 4 có hai con lá 2,2; đỉnh 6 có hai con lá 2,3. Tổng cộng 12 đỉnh.
1
7
1 Cây chỉ gồm một đỉnh ghi số 7. Vì 7 là số nguyên tố nên đỉnh này là một lá hợp lệ.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0