解法一:进制转换+回文数判断
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
in.nextToken();
int N = (int) in.nval;
in.nextToken();
int b = (int) in.nval;
List<Integer> list = new ArrayList<>();
while (N > 0) {
list.add(N % b);
N /= b;
}
boolean flag = true;
int len = list.size();
for (int i = 0; i < len / 2; ++i) {
if (!list.get(i).equals(list.get(len - i - 1))) {
flag = false;
break;
}
}
if (flag) {
out.println("Yes");
} else {
out.println("No");
}
for (int i = len - 1; i > 0; --i) {
out.print(list.get(i) + " ");
}
out.println(list.get(0));
out.flush();
}
}