#include <stdio.h>

int seek(int v) {
	int c = 0;
	int i;
	while (v % 2 == 0) {
		v /= 2;
		c++;
	}
	for (i = 3; i <= v; i += 2) {
		while (v % i == 0) {
			v /= i;
			c++;
		}
	}
	return c;
}

void print(int v) {
	char sp[] = "";
	char op[] = "*";
	char *str = sp;
	int i;
	printf("%d =", v);
	while (v % 2 == 0) {
		v /= 2;
		printf("%s 2 ", str);
		str = op;
	}
	for (i = 3; i <= v; i += 2) {
		while (v % i == 0) {
			v /= i;
			printf("%s %d ", str, i);
			str = op;
		}
	}
	putchar('\n');
}	


int main(void) {
	
	int f[10001];
	int max = 0;
	int i;
	
	for (i = 2; i <= 10000; i++) {
		f[i] = seek(i);
		if (f[i] > max) {
			max = f[i];
		}
	}
	
	for (i = 2; i <= 10000; i++) {
		if (f[i] == max) {
			print(i);
		}
	}
	printf("max: %d", max);
	
	return 0;
}
