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

Tích giai thừa các chữ số

Đề bài

Mô tả

Với mỗi số nguyên dương x, định nghĩa F(x) là tích giai thừa của các chữ số của x. Ví dụ F(135)=1!·3!·5!=1·6·120=720.

Cho một số a gồm n chữ số. Số a có thể có các chữ số 0 ở đầu, và chắc chắn có ít nhất một chữ số lớn hơn 1.

Hãy tìm số nguyên dương x lớn nhất thỏa mãn đồng thời hai điều kiện:

  1. Biểu diễn thập phân của x không chứa chữ số 0 và không chứa chữ số 1.
  2. F(x)=F(a).

Dữ liệu đảm bảo luôn tồn tại ít nhất một số x như vậy.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n là số chữ số của a.
  • Dòng thứ hai chứa n chữ số của a (có thể có chữ số 0 ở đầu).

Dữ liệu ra

In ra số nguyên x lớn nhất thỏa mãn các điều kiện trên.

Ràng buộc

  • 1n15
  • a có ít nhất một chữ số lớn hơn 1

Ví dụ

Input Output Giải thích
4
1234
33222 F(1234)=1!·2!·3!·4!=288, và F(33222)=6·6·2·2·2=288. Không có số lớn hơn thỏa mãn.
3
555
555 Chữ số 5 không thể tách nhỏ thành các chữ số khác trong {2,,9}, nên kết quả giữ nguyên.
2
09
7332 Chữ số 0 bị bỏ qua vì 0!=1. Còn 9!=7!·3!·3!·2!, sắp xếp giảm dần được 7332.

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