trang chủ / bài tập / divpairs

Chia hết

Đề bài

Mô tả

Với một tập hợp các số nguyên dương S, định nghĩa f(S) là số cặp (a,b) thỏa mãn đồng thời:

  • ab đều thuộc S;
  • a<b;
  • a là ước của b (tức b chia hết cho a).

Cho hai số nguyên nk. Hãy tìm một tập hợp S là tập con của {1,2,,n} sao cho f(S)=k.

Dữ liệu vào

Một dòng duy nhất chứa hai số nguyên nk.

Dữ liệu ra

Nếu không tồn tại tập S thỏa mãn, in ra một dòng chứa từ No.

Ngược lại, in ra:

  • Dòng đầu tiên chứa từ Yes;
  • Dòng thứ hai chứa số nguyên m là số phần tử của tập S tìm được;
  • Dòng thứ ba chứa m số nguyên là các phần tử của S (theo thứ tự bất kỳ).

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

Ràng buộc

  • 1n3·105
  • 1k2·109

Ví dụ

Input Output Giải thích
3 3 No Với n=3, tập lớn nhất là {1,2,3} chỉ có 2 cặp là (1,2)(1,3), không đạt được k=3.
6 6 Yes
5
1 2 4 5 6
Các cặp hợp lệ: (1,2),(1,4),(1,5),(1,6),(2,4),(2,6), tổng cộng 6 cặp.
8 3 Yes
3
1 2 4
Các cặp hợp lệ: (1,2),(1,4),(2,4), tổng cộng 3 cặp. Tập {2,4,5,8} cũng là một đáp án hợp lệ khác.

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