# Print this Multiplication Table

Write shortest code to print the following Multiplication Table:

1×1=1
1×2=2  2×2=4
1×3=3  2×3=6  3×3=9
1×4=4  2×4=8  3×4=12 4×4=16
1×5=5  2×5=10 3×5=15 4×5=20 5×5=25
1×6=6  2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7  2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8  2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9  2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81

• Is anyone really going to do anything besides 2 for loops? Where's the challenging (interesting) part? Apr 15, 2013 at 23:56
• I don't use for. Ok, I use while. Apr 16, 2013 at 13:31
• Are trailing spaces important? May 13, 2013 at 19:06
• @jdstankosky perhaps you may find my answer a bit more interesting - no loops involved Jul 22, 2017 at 21:03
• Are we even allowed to use x in place of ×? (If not, that invalidates a whole lot of programs) Jul 23, 2017 at 0:33

putStr$init$unlines[unwords[s i++'×':s j++'=':s(i*j)|i<-[1..j]]|j<-[1..9]]
s=show


-2 thanks to @Laikoni!

Try it online!

# Perl 5, 51 bytes

for$/(1..9){printf$_."x$/=%-3d",$_*$/for 1..$/;say}


Try it online!

# uBASIC, 87 bytes

Anonymous function that takes no input and outputs to the console.

0ForY=1To9:ForX=1To9:z=x*y:Ifx<=yThen?x;"x";y;"=";z;" ";:Ifz<10Then?" ";
2NextX:?:NextY


Try it online!

# MY-BASIC, 105 bytes

Anonymous function that takes no input and prints a multiplication table to the console.

Str(...) conversions are costly in this solution.

For Y=1 To 9
For X=1 To 9
If x<=y Then Print Left(Str(x)+"x"+Str(y)+"="+Str(x*y)+"  ",7)
Next
Print;
Next


Try it online!

# Python 3.6, 70 68 bytes

r=range(1,10)
for b in r:print(*[f"{a}x{b}={a*b:<2}"for a in r[:b]])


Try it online!

• I had not seen Daniel's Answer before submitting this, but credit to him for the original implementation of this idea. Jul 9, 2017 at 21:09
• 68 bytes
– ovs
Jan 31, 2018 at 19:31

# Yabasic, 101 bytes

Anonymous function that takes no input and prints a multiplication table to the console.

For y=1To 9
For x=1To 9
If(x<=y)Then
?Left$(Str$(x)+"x"+Str$(y)+"="+Str$(x*y)+"  ",7);
Fi
Next
?
Next


-3 bytes for the use of Fi over EndIf

Try it online!

# JavaScript, 70 characters

for(s=i='';i++<9;s+='\n')for(j=0;j++<i;s+=j+'×'+i+'='+j*i+' ');alert(s)

Respecting alignment, 83 characters:

for(s=i='';i++<9;s+='\n')for(j=0;j++<i;s+=j+'×'+i+'='+j*i+(j*i>9?' ':'  '));alert(s)

# Excel VBA, 82 Bytes

Anonymous VBE immediate window function that takes no input and outputs to the VBE immediate window.

For y=1To 9:For x=1To 9:?IIf(x>y,"",Left(x &"x"&y &"=" &x*y &"  ",7));:Next:?:Next


# Stax, 18 bytes, (17 chars, UTF-8)

9mc{b"n× =*"mJ


Run and debug it

can't be compressed due to the unicode requirement. a 16 may be possible if I can find a way to compress it. 14 if using x` is allowed.