Mã bài:
hsg9_2024_1
Điểm:
1 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
512M
Dữ liệu vào:
stdin
Dữ liệu ra:
stdout
Tác giả:
Nguồn bài:
Dạng bài
Một số được gọi là số trung hòa nếu số đó có đúng một chữ số hoặc các chữ số của nó có chứa số ~0~. Chẳng hạn các số: ~3, 9, 120, 2024, 100000~ là các số trung hòa.
Cho một số nguyên dương ~N~, nếu ~N~ chưa là số trung hòa thì ta biến đổi ~N~ bằng tích các chữ số của ~N~. Cứ biến đổi như thế cho đến khi ta thu được số trung hòa.
Ví dụ: ~N = 2369~
- Biến đổi lần ~1~: ~N = 2 \times 3 \times 6 \times 9 = 324~ chưa là số trung hòa.
- Biến đổi lần ~2~: ~N = 3 \times 2 \times 4 = 24~ chưa là số trung hòa.
- Biến đổi lần ~3~: ~N = 2 \times 4 = 8~ là số trung hòa.
Yêu cầu: Viết chương trình cho phép kiểm tra xem ~N~ có phải là số trung hòa hay không và số lần biến đổi để ~N~ là số trung hòa.
Dữ liệu vào
- Nhập từ bàn phím một số nguyên dương ~N~ ~(N \le 10^{19})~.
Kết quả ra
Xuất ra màn hình gồm ba dòng như sau:
- Dòng thứ nhất xuất ra màn hình chữ
YES
nếu ~N~ là số trung hòa hoặc chữNO
nếu ~N~ không là số trung hòa. - Dòng thứ hai xuất ra màn hình số lần biến đổi để ~N~ trở thành số trung hòa.
- Dòng thứ ba, nếu ~N~ không là số trung hòa thì xuất ra màn hình số trung hòa thu được sau một lần biến đổi. Ngược lại nếu ~N~ là số trung hòa xuất ra màn hình
---
Ví dụ ~1~
Dữ liệu
6
Kết quả
YES
0
---
Ví dụ ~2~
Dữ liệu
2369
Kết quả
NO
3
8
Bình luận