У вас проблема с форматированием. Имеет смысл отделить его от первоначального расчета; Лучше разбираться с разными проблемами по отдельности.
Вы можете сгенерировать список простых факторов и написать метод для печати списка в правильном формате. Для этой общей проблемы я склонен рассматривать список как заголовок с одним элементом, которому не предшествует разделитель, а хвостом - все остальные записи, каждой из которых предшествует разделитель, ваша '*' или, возможно, запятая в более распространенный случай. Вместо того, чтобы подавлять разделитель после последней записи в списке, думайте о нем, как о подавлении разделителя перед первой записью. Первый элемент в списке легче идентифицировать, чем последний.
Мой код не является строгим Java, но дает общее представление.
void printSeparatedList(factorList) {
char separator = '*';
bool firstEntry = true;
for (int factor : factorList) {
if (firstEntry) {
firstEntry = false;
} else {
System.out.print(separator);
}
System.out.print(factor);
}
} // End printSeparatedList