Skip to content

Instantly share code, notes, and snippets.

@JonasLoos
Last active February 6, 2021 15:32
Show Gist options
  • Save JonasLoos/95b43f78191b3cca72d4f3a3c3be16c7 to your computer and use it in GitHub Desktop.
Save JonasLoos/95b43f78191b3cca72d4f3a3c3be16c7 to your computer and use it in GitHub Desktop.
number products
1 * 1 = 1
11 * 11 = 1 21
111 * 111 = 1 2 321
1111 * 1111 = 12 3 4321
11111 * 11111 = 123 4 54321
111111 * 111111 = 1234 5 654321
1111111 * 1111111 = 12345 6 7654321
11111111 * 11111111 = 123456 7 87654321
111111111 * 111111111 = 1234567 8 987654321
1111111111 * 1111111111 = 12345679 0 0987654321
11111111111 * 11111111111 = 123456790 1 20987654321
111111111111 * 111111111111 = 1234567901 2 320987654321
1111111111111 * 1111111111111 = 12345679012 3 4320987654321
11111111111111 * 11111111111111 = 123456790123 4 54320987654321
111111111111111 * 111111111111111 = 1234567901234 5 654320987654321
1111111111111111 * 1111111111111111 = 12345679012345 6 7654320987654321
11111111111111111 * 11111111111111111 = 123456790123456 7 87654320987654321
111111111111111111 * 111111111111111111 = 1234567901234567 8 987654320987654321
1111111111111111111 * 1111111111111111111 = 12345679012345679 0 0987654320987654321
11111111111111111111*11111111111111111111 = 123456790123456790 120987654320987654321
2 * 2 = 4
22 * 22 = 4 84
222 * 222 = 4 9 284
2222 * 2222 = 49 3 7284
22222 * 22222 = 493 8 17284
222222 * 222222 = 4938 2 617284
2222222 * 2222222 = 49382 7 0617284
22222222 * 22222222 = 493827 1 50617284
222222222 * 222222222 = 4938271 5 950617284
2222222222 * 2222222222 = 49382716 0 3950617284
22222222222 * 22222222222 = 493827160 4 83950617284
222222222222 * 222222222222 = 4938271604 9 283950617284
2222222222222 * 2222222222222 = 49382716049 3 7283950617284
22222222222222 * 22222222222222 = 493827160493 8 17283950617284
222222222222222 * 222222222222222 = 4938271604938 2 617283950617284
2222222222222222 * 2222222222222222 = 49382716049382 7 0617283950617284
22222222222222222 * 22222222222222222 = 493827160493827 1 50617283950617284
222222222222222222 * 222222222222222222 = 4938271604938271 5 950617283950617284
2222222222222222222 * 2222222222222222222 = 49382716049382716 0 3950617283950617284
22222222222222222222*22222222222222222222 = 493827160493827160 483950617283950617284
3 * 3 = 9
33 * 33 = 1 0 89
333 * 333 = 11 0 889
3333 * 3333 = 111 0 8889
33333 * 33333 = 1111 0 88889
333333 * 333333 = 11111 0 888889
3333333 * 3333333 = 111111 0 8888889
33333333 * 33333333 = 1111111 0 88888889
333333333 * 333333333 = 11111111 0 888888889
3333333333 * 3333333333 = 111111111 0 8888888889
33333333333 * 33333333333 = 1111111111 0 88888888889
333333333333 * 333333333333 = 11111111111 0 888888888889
3333333333333 * 3333333333333 = 111111111111 0 8888888888889
33333333333333 * 33333333333333 = 1111111111111 0 88888888888889
333333333333333 * 333333333333333 = 11111111111111 0 888888888888889
3333333333333333 * 3333333333333333 = 111111111111111 0 8888888888888889
33333333333333333 * 33333333333333333 = 1111111111111111 0 88888888888888889
333333333333333333 * 333333333333333333 = 11111111111111111 0 888888888888888889
3333333333333333333 * 3333333333333333333 = 111111111111111111 0 8888888888888888889
33333333333333333333*33333333333333333333 = 1111111111111111111088888888888888888889
4 * 4 = 1 6
44 * 44 = 1 9 36
444 * 444 = 19 7 136
4444 * 4444 = 197 4 9136
44444 * 44444 = 1975 2 69136
444444 * 444444 = 19753 0 469136
4444444 * 4444444 = 197530 8 2469136
44444444 * 44444444 = 1975308 6 02469136
444444444 * 444444444 = 19753086 3 802469136
4444444444 * 4444444444 = 197530864 1 5802469136
44444444444 * 44444444444 = 1975308641 9 35802469136
444444444444 * 444444444444 = 19753086419 7 135802469136
4444444444444 * 4444444444444 = 197530864197 4 9135802469136
44444444444444 * 44444444444444 = 1975308641975 2 69135802469136
444444444444444 * 444444444444444 = 19753086419753 0 469135802469136
4444444444444444 * 4444444444444444 = 197530864197530 8 2469135802469136
44444444444444444 * 44444444444444444 = 1975308641975308 6 02469135802469136
444444444444444444 * 444444444444444444 = 19753086419753086 3 802469135802469136
4444444444444444444 * 4444444444444444444 = 197530864197530864 1 5802469135802469136
44444444444444444444*44444444444444444444 = 1975308641975308641935802469135802469136
5 * 5 = 2 5
55 * 55 = 3 0 25
555 * 555 = 30 8 025
5555 * 5555 = 308 5 8025
55555 * 55555 = 3086 3 58025
555555 * 555555 = 30864 1 358025
5555555 * 5555555 = 308641 9 1358025
55555555 * 55555555 = 3086419 6 91358025
555555555 * 555555555 = 30864197 4 691358025
5555555555 * 5555555555 = 308641975 2 4691358025
55555555555 * 55555555555 = 3086419753 0 24691358025
555555555555 * 555555555555 = 30864197530 8 024691358025
5555555555555 * 5555555555555 = 308641975308 5 8024691358025
55555555555555 * 55555555555555 = 3086419753086 3 58024691358025
555555555555555 * 555555555555555 = 30864197530864 1 358024691358025
5555555555555555 * 5555555555555555 = 308641975308641 9 1358024691358025
55555555555555555 * 55555555555555555 = 3086419753086419 6 91358024691358025
555555555555555555 * 555555555555555555 = 30864197530864197 4 691358024691358025
5555555555555555555 * 5555555555555555555 = 308641975308641975 2 4691358024691358025
55555555555555555555*55555555555555555555 = 3086419753086419753024691358024691358025
6 * 6 = 3 6
66 * 66 = 4 3 56
666 * 666 = 44 3 556
6666 * 6666 = 444 3 5556
66666 * 66666 = 4444 3 55556
666666 * 666666 = 44444 3 555556
6666666 * 6666666 = 444444 3 5555556
66666666 * 66666666 = 4444444 3 55555556
666666666 * 666666666 = 44444444 3 555555556
6666666666 * 6666666666 = 444444444 3 5555555556
66666666666 * 66666666666 = 4444444444 3 55555555556
666666666666 * 666666666666 = 44444444444 3 555555555556
6666666666666 * 6666666666666 = 444444444444 3 5555555555556
66666666666666 * 66666666666666 = 4444444444444 3 55555555555556
666666666666666 * 666666666666666 = 44444444444444 3 555555555555556
6666666666666666 * 6666666666666666 = 444444444444444 3 5555555555555556
66666666666666666 * 66666666666666666 = 4444444444444444 3 55555555555555556
666666666666666666 * 666666666666666666 = 44444444444444444 3 555555555555555556
6666666666666666666 * 6666666666666666666 = 444444444444444444 3 5555555555555555556
66666666666666666666*66666666666666666666 = 4444444444444444444355555555555555555556
7 * 7 = 4 9
77 * 77 = 5 9 29 !
777 * 777 = 60 3 729
7777 * 7777 = 604 8 1729
77777 * 77777 = 6049 2 61729
777777 * 777777 = 60493 7 061729
7777777 * 7777777 = 604938 1 5061729
77777777 * 77777777 = 6049382 5 95061729
777777777 * 777777777 = 60493827 0 395061729
7777777777 * 7777777777 = 604938271 4 8395061729
77777777777 * 77777777777 = 6049382715 9 28395061729 !
777777777777 * 777777777777 = 60493827160 3 728395061729
7777777777777 * 7777777777777 = 604938271604 8 1728395061729
77777777777777 * 77777777777777 = 6049382716049 2 61728395061729
777777777777777 * 777777777777777 = 60493827160493 7 061728395061729
7777777777777777 * 7777777777777777 = 604938271604938 1 5061728395061729
77777777777777777 * 77777777777777777 = 6049382716049382 5 95061728395061729
777777777777777777 * 777777777777777777 = 60493827160493827 0 395061728395061729
7777777777777777777 * 7777777777777777777 = 604938271604938271 4 8395061728395061729
77777777777777777777*77777777777777777777 = 6049382716049382715928395061728395061729 !
8 * 8 = 6 4
88 * 88 = 7 7 44
888 * 888 = 78 8 544
8888 * 8888 = 789 9 6544 !
88888 * 88888 = 7901 0 76544
888888 * 888888 = 79012 1 876544
8888888 * 8888888 = 790123 2 9876544
88888888 * 88888888 = 7901234 4 09876544
888888888 * 888888888 = 79012345 5 209876544
8888888888 * 8888888888 = 790123456 6 3209876544
88888888888 * 88888888888 = 7901234567 7 43209876544
888888888888 * 888888888888 = 79012345678 8 543209876544
8888888888888 * 8888888888888 = 790123456789 9 6543209876544 !
88888888888888 * 88888888888888 = 7901234567901 0 76543209876544
888888888888888 * 888888888888888 = 79012345679012 1 876543209876544
8888888888888888 * 8888888888888888 = 790123456790123 2 9876543209876544
88888888888888888 * 88888888888888888 = 7901234567901234 4 09876543209876544
888888888888888888 * 888888888888888888 = 79012345679012345 5 209876543209876544
8888888888888888888 * 8888888888888888888 = 790123456790123456 6 3209876543209876544
88888888888888888888*88888888888888888888 = 7901234567901234567743209876543209876544
9 * 9 = 8 1
99 * 99 = 9 8 01
999 * 999 = 99 8 001
9999 * 9999 = 999 8 0001
99999 * 99999 = 9999 8 00001
999999 * 999999 = 99999 8 000001
9999999 * 9999999 = 999999 8 0000001
99999999 * 99999999 = 9999999 8 00000001
999999999 * 999999999 = 99999999 8 000000001
9999999999 * 9999999999 = 999999999 8 0000000001
99999999999 * 99999999999 = 9999999999 8 00000000001
999999999999 * 999999999999 = 99999999999 8 000000000001
9999999999999 * 9999999999999 = 999999999999 8 0000000000001
99999999999999 * 99999999999999 = 9999999999999 8 00000000000001
999999999999999 * 999999999999999 = 99999999999999 8 000000000000001
9999999999999999 * 9999999999999999 = 999999999999999 8 0000000000000001
99999999999999999 * 99999999999999999 = 9999999999999999 8 00000000000000001
999999999999999999 * 999999999999999999 = 99999999999999999 8 000000000000000001
9999999999999999999 * 9999999999999999999 = 999999999999999999 8 0000000000000000001
99999999999999999999*99999999999999999999 = 9999999999999999999800000000000000000001
@JonasLoos
Copy link
Author

JonasLoos commented Feb 6, 2021

m = 20
for i in range(1,10):
    for n in range(1,m+1):
        x = int(str(i)*n)
        y = str(x*x)
        print(f'{{:<{m}d}}*{{:{m}d}} = {{:<{m-1}}}{{:1}}{{:>{m}}}'.format(x,x,y[:-n-1],y[-n-1:-n],y[-n:]), end=' ')
        x_ = int(str(i)*(n+1))
        y_ = str(x_*x_)
        if (y[:-n-1] != y_[:-n-2][:-1] or y[-n:] != y_[-n-1:][1:]):
            print('!', end='')
        print()

@JonasLoos
Copy link
Author

JonasLoos commented Feb 6, 2021

Seems to be going well for [1,2,3,4,5,6,9], with only 7 and 8 having errors (tested until m=5000)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment