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


PROC PrintFactors(CARD a)
  BYTE notFirst
  CARD p
 
  IF a=1 THEN
    PrintC(a) RETURN
  FI
 
  p=2 notFirst=0
  WHILE p<=a
  DO
    IF a MOD p=0 THEN
      IF notFirst THEN
        Put('x)
      FI
      notFirst=1
      PrintC(p)
      a==/p
    ELSE
      p==+1
    FI
  OD
RETURN
 
PROC Main()
  CARD i
 
  FOR i=1 TO 1000
  DO
    PrintC(i) Put('=)
    PrintFactors(i)
    PutE()
  OD
RETURN