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

Dãy ước số

Đề bài

Mô tả

Cho dãy số nguyên dương a, định nghĩa hàm f(a) là dãy thu được bằng cách: với mỗi phần tử ai của a (theo thứ tự từ trái sang phải), liệt kê tất cả các ước số của ai theo thứ tự tăng dần, rồi nối lại thành một dãy mới.

Ví dụ: f([2, 9, 1])=[1, 2, 1, 3, 9, 1].

Với hai số Xk cho trước, định nghĩa dãy Xi (i0) như sau:

  • X0=[X] (dãy gồm đúng một phần tử là X).
  • Xi=f(Xi1) với i1.

Ví dụ với X=6: X0=[6], X1=[1,2,3,6], X2=[1,1,2,1,3,1,2,3,6].

Hãy in ra dãy Xk. Vì dãy có thể rất dài, chỉ in ra tối đa 105 phần tử đầu tiên (nếu dãy có ít hơn 105 phần tử thì in tất cả).

Dữ liệu vào

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

Dữ liệu ra

In các phần tử của dãy Xk (tối đa 105 phần tử đầu) trên một dòng, ngăn cách bởi dấu cách.

Ràng buộc

  • 1X1012
  • 0k1018

Ví dụ

Input Output Giải thích
6 1 1 2 3 6 X1 là các ước số của 6 theo thứ tự tăng dần.
4 2 1 1 2 1 2 4 X1=[1,2,4]. X2 là nối các ước của 1, 2, 4: [1]+[1,2]+[1,2,4].
10 3 1 1 1 2 1 1 5 1 1 2 1 5 1 2 5 10 X1=[1,2,5,10], X2=[1]+[1,2]+[1,5]+[1,2,5,10], X3 là nối các ước của từng phần tử của X2.

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