trang chủ / đề bài / voi15_crypt

Chìa khóa mã số

Đề bài

Mô tả

Duy vừa xây dựng hệ thống mã hóa bảo mật dữ liệu cho cơ quan dựa trên cơ sở hệ mã hóa với khóa công khai. Biết rằng, trong hệ thống này khóa được sử dụng để mã hóa là một số nguyên dương thuộc tập S gồm các khóa mã hóa được xây dựng dựa trên tập gồm n số nguyên dương a1,a2,…,an. Theo định nghĩa, tập S là tập chỉ gồm các số được xác định theo 2 qui tắc sau đây:

  • Qui tắc 1: Các số a1,a2,…,an là thuộc vào S.
  • Qui tắc 2: Nếu x và y thuộc tập S, thì cả ước số chung lớn nhất lẫn bội số chung nhỏ nhất của chúng cũng đều thuộc tập S.

Vấn đề đặt ra cho Duy bây giờ là: Kiểm tra xem một số nguyên dương k có thuộc vào tập các khóa S hay không?

Yêu cầu: Cho n số nguyên dương a1,a2,…,an và một số nguyên dương k, hãy kiểm tra xem k có thuộc vào tập các khóa xây dựng theo các qui tắc đã nêu hay không.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên dương T (T≤5) là số lượng bộ dữ liệu.
  • Mỗi nhóm trong số T nhóm dòng tiếp theo mô tả một bộ dữ liệu gồm 3 dòng:
    • Dòng thứ nhất chứa số nguyên dương n;
    • Dòng thứ hai chứa n số nguyên dương a1,a2,…,an (ai≤1012);
    • Dòng thứ ba chứa số nguyên dương k (k≤1012).

Hai số liên tiếp trên cùng dòng được ghi cách nhau bởi dấu cách.

Dữ liệu ra

In ra T dòng, mỗi dòng ghi câu trả lời cho một bộ dữ liệu tương ứng trong dữ liệu vào: ghi YES nếu như k thuộc vào tập khóa và ghi NO nếu như trái lại.

Ràng buộc

  • T≤5; 1≤n≤50000.
  • 1≤ai≤1012; 1≤k≤1012.

Subtasks

  • Subtask 1 (50% số điểm): n≤10.
  • Subtask 2 (50% số điểm): n≤50000.

Mỗi subtask gồm nhiều test, mỗi test được chấm điểm riêng.

Ví dụ

Input Output Giải thích
2
2
45 75
15
2
45 75
9
YES
NO
15=gcd(45,75). Mọi số thuộc S đều là ước của lcm(45,75)=225 và chia hết cho 15, nên 9∉S.
3
3
12 18 5
30
3
12 18 5
4
2
12 18
1
YES
NO
NO
30=lcm(gcd(12,18),5). Không thể tạo ra 4 từ 12,18,5. Với a={12,18} mọi số thuộc S đều chia hết cho 6, nên 1∉S.

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