Task

Write a program which counts up from   1,   displaying each number as the multiplication of its prime factors.

For the purpose of this task,   1   (unity)   may be shown as itself.



Example

      2   is prime,   so it would be shown as itself.

      6   is not prime;   it would be shown as   



2
×
3


{\displaystyle 2\times 3}

.
2144   is not prime;   it would be shown as   



2
×
2
×
2
×
2
×
2
×
67


{\displaystyle 2\times 2\times 2\times 2\times 2\times 67}

.



Related tasks

   prime decomposition
   factors of an integer
   Sieve of Eratosthenes
   primality by trial division
   factors of a Mersenne number
   trial factoring of a Mersenne number
   partition an integer X into N primes


factorNum := proc(n)
	local i, j, firstNum;
	if n = 1 then
		printf("%a", 1);
	end if;
	firstNum := true:
	for i in ifactors(n)[2] do
		for j to i[2] do
			if firstNum then
				printf ("%a", i[1]);
				firstNum := false:
			else
				printf(" x %a", i[1]);
			end if;
		end do;
	end do;
	printf("\n");
	return NULL;
end proc:
 
for i from 1 to 10 do
	printf("%2a: ", i);
	factorNum(i);
end do;