20
\$\begingroup\$

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
\$\endgroup\$
8
  • 6
    \$\begingroup\$ Is anyone really going to do anything besides 2 for loops? Where's the challenging (interesting) part? \$\endgroup\$ – jdstankosky Apr 15 '13 at 23:56
  • 3
    \$\begingroup\$ I don't use for. Ok, I use while. \$\endgroup\$ – Johannes Kuhn Apr 16 '13 at 13:31
  • 3
    \$\begingroup\$ Are trailing spaces important? \$\endgroup\$ – Reinstate Monica May 13 '13 at 19:06
  • 1
    \$\begingroup\$ @jdstankosky perhaps you may find my answer a bit more interesting - no loops involved \$\endgroup\$ – Taylor Scott Jul 22 '17 at 21:03
  • 1
    \$\begingroup\$ Are we even allowed to use x in place of ×? (If not, that invalidates a whole lot of programs) \$\endgroup\$ – Adalynn Jul 23 '17 at 0:33

69 Answers 69

2
\$\begingroup\$

Excel, 57 bytes

Requires Excel 365 / 2019 version 2007 or newer

An excel worksheet function that defines the contextual arrays c and r then outputs an 9x9 array containg the output.

=Let(c,Column(A:I),r,Row(1:9),If(c>r,"",r&"x"&c&"="&r*c))

Excel VBA Version, 64 Bytes

Anonymous VBE Immediate window function that takes no input and outputs to range [A1:I9] on the ActiveSheet object

[1:9]="=Let(c,Column(),r,Row(),If(c>r,"""",r&""x""&c&""=""&r*c))

Output

enter image description here

\$\endgroup\$
2
  • \$\begingroup\$ If you put =LET(c,COLUMN(A:I),r,ROW(1:9),IF(c>r,"",r&"x"&c&"="&r*c)) into a cell, it is only 57 bytes. \$\endgroup\$ – Axuary Mar 22 at 22:23
  • \$\begingroup\$ @Axuary, thanks - for some reason I was thinking that I already had an Excel answer to this one, but I guess I didn't I've modified my response to show this approach being used both with and without VBA \$\endgroup\$ – Taylor Scott Mar 23 at 22:08
1
\$\begingroup\$

Javascript: 82 characters

o="";for(a=1;a<10;a++){for(b=1;b<=a;b++){o+=a+"x"+b+"="+(a*b)+" "}o+="\n"}alert(o)
\$\endgroup\$
2
  • 1
    \$\begingroup\$ your code can be shortened to 75 like this for(i=0,s="";9>i++;){for(j=0;j++<i;)s+=j+"x"+i+"="+j*i+" ";s+="\n"}alert(s), however the double spaces thing on 2 digits is not respected, I was about to submit that one but using +(9<i*j?" ":" ") instead of just +" " edit: on the ternary the double spaces disappeared, but they are on the second param \$\endgroup\$ – ajax333221 May 6 '13 at 18:55
  • \$\begingroup\$ I will be picky but 4x4 is not directly under 5x4 like in task. \$\endgroup\$ – user902383 Jul 26 '16 at 13:02
1
\$\begingroup\$

Python: 87

I'm eyeballing the solutions others have posted and most of them don't appear to get the spacing correct.

for i in range(1,10):print''.join(('%s×%s=%s'%(j,i,i*j)).ljust(7)for j in range(1,i+1))
\$\endgroup\$
1
  • \$\begingroup\$ You have trailing spaces, does that count? ;-) \$\endgroup\$ – Reinstate Monica May 13 '13 at 12:55
1
\$\begingroup\$

Python (79)

or (77) if I use range(10) except that produces an empty line at the start

for i in range(1,10):print' '.join('%dx%d=%-2d'%(j,i,j*i)for j in range(1,i+1))

1x1=1 
1x2=2  2x2=4 
1x3=3  2x3=6  3x3=9 
1x4=4  2x4=8  3x4=12 4x4=16
1x5=5  2x5=10 3x5=15 4x5=20 5x5=25
1x6=6  2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7  2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8  2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9  2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
\$\endgroup\$
1
\$\begingroup\$

Perl: 65 , 62 characters

map{map{printf"%dx%d=%2d ",$_,$i,$_*$i}1..($i=$_);print$/}1..9
\$\endgroup\$
2
  • \$\begingroup\$ Spare 2 characters by removing the printf's parenthesis; spare 1 character by moving the assignment of $i into the range expression: map{map{printf"%dx%d=%2d ",$_,$i,$_*$i}1..($i=$_);print$/}1..9. \$\endgroup\$ – manatwork Apr 17 '13 at 7:15
  • \$\begingroup\$ @manatwork: Thank you very much. \$\endgroup\$ – Toto Apr 17 '13 at 7:33
1
\$\begingroup\$

Ruby: 79 77 characters (without loops)

m=->i,j{"%dx%d=%-3d"%[i,j,i*j]+(i<j ?m[i+1,j]:j<9?$/+m[1,j+1]:$/)};$><<m[1,1]

Sample run:

bash-4.2$ ruby -e 'm=->i,j{"%dx%d=%-3d"%[i,j,i*j]+(i<j ?m[i+1,j]:j<9?$/+m[1,j+1]:$/)};$><<m[1,1]' 
1x1=1  
1x2=2  2x2=4  
1x3=3  2x3=6  3x3=9  
1x4=4  2x4=8  3x4=12 4x4=16 
1x5=5  2x5=10 3x5=15 4x5=20 5x5=25 
1x6=6  2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 
1x7=7  2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 
1x8=8  2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 
1x9=9  2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81 
\$\endgroup\$
0
1
\$\begingroup\$

C++, 126 characters

I took the expected approach.

#include <iostream>
int main(){for(int i=1,j;i<10;i++){for(j=1;j<=i;j++)std::cout<<i<<"x"<<j<<"="<<i*j<<" ";std::cout<<std::endl;}}
\$\endgroup\$
1
\$\begingroup\$

k (63 characters)

Prints the output to stdout.

-1@`/:" "/:'{7$x,"×",y,"=",z}.''$v,''(*).''v:(1+!:'t),''t:1+!9;

Example

k)-1@`/:" "/:'{7$x,"×",y,"=",z}.''$v,''(*).''v:(1+!:'t),''t:1+!9;
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
\$\endgroup\$
1
\$\begingroup\$

C, 86 85 84 bytes

i;m(j){for(;i++^9;puts(""))for(j=0;j++^i;printf("%d×%d=%d %c",j,i,j*i,j*i>9?:32));}
\$\endgroup\$
4
  • \$\begingroup\$ j*v>9?:32 what does it mean? \$\endgroup\$ – user58988 Sep 20 '16 at 14:59
  • \$\begingroup\$ jv>9?:32 it seems as jv>9?0:32 but j*v>9?32: here seems not compile... \$\endgroup\$ – user58988 Sep 20 '16 at 15:28
  • \$\begingroup\$ ideone @RosLuP \$\endgroup\$ – user56344 Sep 20 '16 at 23:38
  • \$\begingroup\$ Yes code as "a>b?9:;" I remember not compile in Ideone but code as "a>b?:9;" compile... \$\endgroup\$ – user58988 Sep 21 '16 at 7:07
1
\$\begingroup\$

VBA, 118 bytes

Sub M()
While B<9
B=1-B*(B<>A)
A=A-(B=1)
S=S &B &"x"&A &"="&A*B &IIf(A=B,vbLf,Space(2+(A*B>9)))
Wend
MsgBox S
End Sub

No for loops :-) and only one while loop.

And no If statements, so I could potentially one-line it and get the automatic "End Sub" for 8 fewer bytes if pushed; but I'm not that close to the leaderboard :-)

Sub M():While B<9:B=1-B*(B<>A):A=A-(B=1):S=S &B &"x"&A &"="&A*B &IIf(A=B,vbLf,Space(2+(A*B>9))):Wend:MsgBox S
\$\endgroup\$
1
\$\begingroup\$

Convex, 27 bytes

9´{_´f{æ*'×@@'=\_s,¿)S*}N}%

Try it online!

Use the following version if only a single space is required between each equation:

Convex, 21 bytes

9´{_´f{æ*'×@@'=\S}N}%

Try it online!

\$\endgroup\$
1
\$\begingroup\$

Javascript (using external library) (74 bytes)

n=>_.Range(1,9).WriteLine(v=>_.Range(1,v).Write(" ",x=>v+"x"+x+"="+(v*x)))

Link to lib: https://github.com/mvegh1/Enumerable

Code explanation: Create a range starting from 1, for 9 elements. For each integer in the range, write a line according to the predicate accepting the current value as the input param.

Each line in WriteLine will create a range from 1 to v, and write a space delimited string where each integer in the 1 to v sequence is mapped to the multiplication equation

enter image description here

\$\endgroup\$
1
\$\begingroup\$

Python 2, 91 characters

for k in[" ".join(["%ix%i=%i"%(j,i,j*i)for j in range(1,i+1)])for i in range(1,10)]:print k

Or, if each line as string like '1x2=2 2x2=4' is acceptable, this is 85 characters:

for k in[" ".join(["%ix%i=%i"%(j,i,j*i)for j in range(1,i+1)])for i in range(1,10)]:k

This one is slightly varied, resulting 93 characters:

print("\n".join([" ".join(["%ix%i=%i"%(j,i,j*i)for j in range(1,i+1)])for i in range(1,10)]))
\$\endgroup\$
5
  • 1
    \$\begingroup\$ This gives me syntax errors. Which version of python are you using? \$\endgroup\$ – DJMcMayhem Jul 23 '16 at 21:38
  • \$\begingroup\$ Which one gave you a syntax error? All of them? Python 2.7.11 (default, Jan 22 2016, 08:29:18) [GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin \$\endgroup\$ – eaydin Jul 24 '16 at 15:43
  • \$\begingroup\$ You're probably using Python3, in which case you should use print(k) instead of "print k" for the first solution. \$\endgroup\$ – eaydin Jul 24 '16 at 15:45
  • \$\begingroup\$ @nukacolacolic You should probably mention in your post or in your heading that some or all of your code only works for Python 2 and not Python 3. It helps when other people want to check your answers. \$\endgroup\$ – Sherlock9 Jul 26 '16 at 14:40
  • \$\begingroup\$ You're right @Sherlock9 I'll edit the answer, thanks. \$\endgroup\$ – eaydin Jul 26 '16 at 21:28
1
\$\begingroup\$

Groovy, 65 60 characters

1.upto(9){x->1.upto(x){printf(x+"x$it=%-3d",x*it)}println()}

Sample run:

bash-4.3$ groovy -e '1.upto(9){x->1.upto(x){printf(x+"x$it=%-3d",x*it)}println()}'
1x1=1  
2x1=2  2x2=4  
3x1=3  3x2=6  3x3=9  
4x1=4  4x2=8  4x3=12 4x4=16 
5x1=5  5x2=10 5x3=15 5x4=20 5x5=25 
6x1=6  6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 
7x1=7  7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 
8x1=8  8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 
9x1=9  9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81 
\$\endgroup\$
1
\$\begingroup\$

golflua, 54 49 characters

~@i=1,9~@j=1,i I.w(S.q(i.."x%d=%-3d",j,i*j))$w()$

Sample run:

bash-4.3$ golflua -e '~@i=1,9~@j=1,i I.w(S.q(i.."x%d=%-3d",j,i*j))$w()$'
1x1=1  
2x1=2  2x2=4  
3x1=3  3x2=6  3x3=9  
4x1=4  4x2=8  4x3=12 4x4=16 
5x1=5  5x2=10 5x3=15 5x4=20 5x5=25 
6x1=6  6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 
7x1=7  7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 
8x1=8  8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 
9x1=9  9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81 
\$\endgroup\$
1
\$\begingroup\$

C 79 bytes

i=1,j=1;f(){printf("%dx%d=%d ",j,i,i*j);++i>j?++j,i=1,j<=9?puts(""),f():0:f();}

the main

main(){f();}

the table

1x1=1 
2x1=2 2x2=4 
3x1=3 3x2=6 3x3=9 
4x1=4 4x2=8 4x3=12 4x4=16 
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81 
\$\endgroup\$
1
\$\begingroup\$

Julia (236 Bytes, potentially 63) - Could use help.

A=[1 2 3 4 5 6 7 8 9; 1 2 3 4 5 6 7 8 9; 1 2 3 4 5 6 7 8 9; 1 2 3 4 5 6 7 8 9; 1 2 3 4 5 6 7 8 9; 1 2 3 4 5 6 7 8 9; 1 2 3 4 5 6 7 8 9; 1 2 3 4 5 6 7 8 9;1 2 3 4 5 6 7 8 9]
map(x->x>0?print(x,"x",x,"=",x*x,"\t"):println(),triu!(A'))

Someone put in the comments "Who's going to do anything but use 2 loops?"

This guy is!

I don't know how to instantiate matrices easily in Julia, anyone who could help me do the instantiation of the matrix better I will be grateful. I can only get it to make a 2D array, and triu doesn't work on that.

How it works:

  • A = [...] creates a 9x9 matrix with 1-9 in each vector (someone please teach me to do this right without accidentally creating a 2D array... I want to learn this language better, but I'm confused on the typing differences and a lot of the documentation is pretty terse for matrices.
  • triu!(A') takes the inverse of the upper triangle of the matrix.
  • map(x->x?0...:...,A) mapping function that differentiates on x=0, printing a newline when needed.

Output:

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
\$\endgroup\$
1
  • \$\begingroup\$ That was my comment! Lol, it's been some years. \$\endgroup\$ – jdstankosky Aug 10 '17 at 13:33
1
\$\begingroup\$

PHP, 73 bytes

for(;$m++<9;print"
")for($n=0;$n++<$m;)printf("%d×%d=%-3d",$n,$m,$n*$m);

Try it online!

\$\endgroup\$
1
\$\begingroup\$

Kotlin, 73 bytes

(1..10).forEach{(1..it).forEach{x->print("${x}x$it=${x*it} ")};println()}

Kotlin is the latest JVM language and I mainly wanted to try my hand at it.

You can try it on their online interpreter.

\$\endgroup\$
1
\$\begingroup\$

05AB1E, 22 20 bytes

9LεLyâε'×ý'=yPðJ6∍]»

-2 bytes thanks to @Grimmy.

Try it online.

Explanation:

9L                 # Push a list in the range [1,9]
  ε                # Map over each value `y`:
   L               #  Push a list in the range [1,y]
    yâ             #  Pair each value in this list with `y`
                   #   i.e. [1,2,3] and 3 → [[1,3],[2,3],[3,3]]
      ε            #  Map over each pair:
       '×ý        '#   Join the pair with "×" delimiter
          '=      '#   Push a "="
            yP     #   Push the pair again, and pop and push it's product
              ð    #   Push a space " "
               J   #   Join all three values on the stack together
                6∍ #   And then shorten the string to size 6
  ]                # Close both the maps
   »               # Join each inner list by spaces, and then each string by newlines
                   # (after which the result is output implicitly)
\$\endgroup\$
3
  • \$\begingroup\$ δ‚ => â for -1. \$\endgroup\$ – Grimmy Feb 21 '20 at 11:56
  • \$\begingroup\$ And here’s 20 using J instead of ý + «. \$\endgroup\$ – Grimmy Feb 21 '20 at 11:59
  • \$\begingroup\$ @Grimmy Ah, of course. Thanks! :) \$\endgroup\$ – Kevin Cruijssen Feb 21 '20 at 12:02
1
\$\begingroup\$

Burlesque, 45 bytes

9roJcp:SOm{Jpdjimup"x="**j_+}{-]j-]==}gb)wduN

Try it online!

I'm almost positive there're multiple cuts that can be made here, but I just can't get them...

9ro     # Range [1,9]
J       # Duplicate
cp      # Cartesian product
:SO     # Filter for sorted-reversed
m{      # Map
 J      # Duplicate
 pd     # Product
 jimup  # Convert the two numbers into a string ({1 1} => "11")
 "x="** # Riffle in x=                          ("11""x=" => "1x1=")
 j_+    # Append the result
 }
 {
  -]j-] # Heads of both
  ==    # Are equal
 }gb    # Group by first digit being the same
 )wd    # Separate each internal list by spaces
 uN     # Separate main list by newline and prettify
\$\endgroup\$
1
\$\begingroup\$

Pyth, 25 bytes

Now fully conformant!

VS9jdm.[s[N\×d\=*Nd)\ 6SN

Try it online!

\$\endgroup\$
1
+100
\$\begingroup\$

Vyxal, 359 20 bytes, -j flag

Try it online

9ƛɾMƛ\×j\=+nΠ+9↲7Ẏ;∑

Finally, I'm done, and to round up LoTM, more forward-slashes. (Edit 1: the \s are gone)

\$\endgroup\$
3
  • \$\begingroup\$ 20 bytes \$\endgroup\$ – lyxal May 10 at 11:33
  • \$\begingroup\$ @lyxal I had 39 :p \$\endgroup\$ – A username May 10 at 11:33
  • \$\begingroup\$ @Ausername honestly I just ported the 05AB1E answer \$\endgroup\$ – lyxal May 10 at 11:37
0
\$\begingroup\$

C#, 131:

Action<string> n=x=>Console.Write(" "+x);Action f=()=>{for(int i=1,x=1;i<10;i++){for(;x<=i;x++){n(x+"x"+i+"="+i*x);}n("\n");x=1;}};

Isn't the EXACT shape, but nearly there.

\$\endgroup\$
2
  • \$\begingroup\$ I'm not sure about the rules, but, isn't your code supposed to include all that is necessary to compile ? \$\endgroup\$ – user8059 May 18 '13 at 0:36
  • \$\begingroup\$ I think I saw somewhere that putting an action is fine in C#. \$\endgroup\$ – It'sNotALie. May 18 '13 at 7:00
0
\$\begingroup\$

Erlang escript 99

$ cat multi 

main(_)->[[[io:format("~bx~b=~-3b",[B,A,A*B])||B<-s(A)],io:nl()]||A<-s(9)].
s(X)->lists:seq(1,X).

and run

$ escript multi 
1x1=1  
1x2=2  2x2=4  
1x3=3  2x3=6  3x3=9  
1x4=4  2x4=8  3x4=12 4x4=16 
1x5=5  2x5=10 3x5=15 4x5=20 5x5=25 
1x6=6  2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 
1x7=7  2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 
1x8=8  2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 
1x9=9  2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
\$\endgroup\$
0
\$\begingroup\$

Javascript, ES6 65

for(i=0,r='';++i<10;r+='\n')for(e=0;e++<i;r+=i+'x'+e+'='+i*e+' ');

It was pretty fun to make!

\$\endgroup\$
1
  • \$\begingroup\$ Nice solution. However, your code does not output anything, and it does not include the required double spaces for alignment. With these added, your solution clocks in at 85 characters: for(i=r="";10>++i;r+="\n")for(e=0;e++<i;r+=i+"x"+e+"="+i*e+(10>e*i?" ":" "));alert(r) \$\endgroup\$ – Tomas Langkaas Jun 18 '17 at 12:35
0
\$\begingroup\$

C 95 bytes

i=1,j=1;f(){printf("%dx%d=%d %c",j,i,i*j,i!=2||j>4?:32);++i>j?++j,i=1,j<=9?puts(""),f():0:f();}

they want this table:

1x1=1 
2x1=2 2x2=4  
3x1=3 3x2=6  3x3=9 
4x1=4 4x2=8  4x3=12 4x4=16 
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81 
\$\endgroup\$
0
\$\begingroup\$

Racket 94 bytes

(for((n(range 1 10)))(for((i(range 1(add1 n))))(printf "~ax~a=~a  "i  n(* i n)))(displayln""))

Ungolfed:

(define (f)
  (for ((n (range 1 10)))
    (for ((i (range 1 (add1 n))))
      (printf "~ax~a=~a  " i  n (* i n)))
    (displayln ""))
  )

Testing:

(f)

Output:

1x1=1  
1x2=2  2x2=4  
1x3=3  2x3=6  3x3=9  
1x4=4  2x4=8  3x4=12  4x4=16  
1x5=5  2x5=10  3x5=15  4x5=20  5x5=25  
1x6=6  2x6=12  3x6=18  4x6=24  5x6=30  6x6=36  
1x7=7  2x7=14  3x7=21  4x7=28  5x7=35  6x7=42  7x7=49  
1x8=8  2x8=16  3x8=24  4x8=32  5x8=40  6x8=48  7x8=56  8x8=64  
1x9=9  2x9=18  3x9=27  4x9=36  5x9=45  6x9=54  7x9=63  8x9=72  9x9=81  
\$\endgroup\$
0
\$\begingroup\$

tcl, 93

time {incr i;set j 0;while {[incr j]<=$i} {puts -nonewline $j\x$i=[expr $j*$i]\ };puts ""} 10

demo

\$\endgroup\$
1
0
\$\begingroup\$

///, 262 bytes

/;/=4//:/x\/\///-/ 6:,/=2//'/ 5:&/=1//%/ 4:#/ 3:"/
1:!/  2x/1x1&"2,!2;"3=3!3=6 #3=9"4;!4=8 #4&2%4&6"5=5!5&0#5&5%5,0'5,5"6=6!6&2#6&8%6,4'6=30-6=36"7=7!7&4#7,1%7,8'7=35-7;2 7x7;9"8=8!8&6#8,4%8=32'8;0-8;8 7x8=56 8x8=64"9=9!9&8#9,7%9=36'9;5-9=54 7x9=63 8x9=72 9x9=81

Try it online!

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.