Gee, where does '42' not show up?

>>> x = 2
>>> while x <= 2 ** 32:
	print (f"{bin(x)[2:]:>32} : {x}")
	x <<= 2
	x += 2

>>> 
                              10 : 2
                            1010 : 10
                          101010 : 42
                        10101010 : 170
                      1010101010 : 682
                    101010101010 : 2730
                  10101010101010 : 10922
                1010101010101010 : 43690
              101010101010101010 : 174762
            10101010101010101010 : 699050
          1010101010101010101010 : 2796202
        101010101010101010101010 : 11184810
      10101010101010101010101010 : 44739242
    1010101010101010101010101010 : 178956970
  101010101010101010101010101010 : 715827882
10101010101010101010101010101010 : 2863311530

When we explore this pattern further, it gets even weirder…

For my own purposes I created this function to initiate each test…

>>> def ix():
	global x
	x = 2

>>> ix()
>>> k = 32
>>> while x <= 2 ** k:
	print (f"{bin(x)[2:]:>32} : {x:>10} : {x % 10}")
	x <<= 2
	x += 2
                              10 :          2 : 2
                            1010 :         10 : 0
                          101010 :         42 : 2
                        10101010 :        170 : 0
                      1010101010 :        682 : 2
                    101010101010 :       2730 : 0
                  10101010101010 :      10922 : 2
                1010101010101010 :      43690 : 0
              101010101010101010 :     174762 : 2
            10101010101010101010 :     699050 : 0
          1010101010101010101010 :    2796202 : 2
        101010101010101010101010 :   11184810 : 0
      10101010101010101010101010 :   44739242 : 2
    1010101010101010101010101010 :  178956970 : 0
  101010101010101010101010101010 :  715827882 : 2
10101010101010101010101010101010 : 2863311530 : 0

Can anyone help me get k into the format rules? Much obliged; please and thank you.

Now this gets fun…

>>> x=5
>>> while x <= 2 ** k:
	print (f"{bin(x)[2:]:>32} : {x:>10} : {x % 10}")
	x <<= 2
	x += 1

	
                             101 :          5 : 5
                           10101 :         21 : 1
                         1010101 :         85 : 5
                       101010101 :        341 : 1
                     10101010101 :       1365 : 5
                   1010101010101 :       5461 : 1
                 101010101010101 :      21845 : 5
               10101010101010101 :      87381 : 1
             1010101010101010101 :     349525 : 5
           101010101010101010101 :    1398101 : 1
         10101010101010101010101 :    5592405 : 5
       1010101010101010101010101 :   22369621 : 1
     101010101010101010101010101 :   89478485 : 5
   10101010101010101010101010101 :  357913941 : 1
 1010101010101010101010101010101 : 1431655765 : 5
>>> 

Not to get boring, lets introduce Primes.

>>> def isPrime(n):
	if n < 2: return False
	for x in range(2, int(n ** 0.5) + 1):
		if n % x == 0: return False
	return True
>>> x=5
>>> while x <= 2 ** k:
	print (f"{bin(x)[2:]:>32} : {x:>10} : {x % 10} : {isPrime(x)}")
	x <<= 2
	x += 1

	
                             101 :          5 : 5 : True
                           10101 :         21 : 1 : False
                         1010101 :         85 : 5 : False
                       101010101 :        341 : 1 : False
                     10101010101 :       1365 : 5 : False
                   1010101010101 :       5461 : 1 : False
                 101010101010101 :      21845 : 5 : False
               10101010101010101 :      87381 : 1 : False
             1010101010101010101 :     349525 : 5 : False
           101010101010101010101 :    1398101 : 1 : False
         10101010101010101010101 :    5592405 : 5 : False
       1010101010101010101010101 :   22369621 : 1 : False
     101010101010101010101010101 :   89478485 : 5 : False
   10101010101010101010101010101 :  357913941 : 1 : False
 1010101010101010101010101010101 : 1431655765 : 5 : False
>>> x=1
>>> while x <= 2 ** k:
	print (f"{bin(x)[2:]:>32} : {x:>10} : {x % 10} : {isPrime(x)}")
	x <<= 2
	x += 1

	
                               1 :          1 : 1 : False
                             101 :          5 : 5 : True
                           10101 :         21 : 1 : False
                         1010101 :         85 : 5 : False
                       101010101 :        341 : 1 : False
                     10101010101 :       1365 : 5 : False
                   1010101010101 :       5461 : 1 : False
                 101010101010101 :      21845 : 5 : False
               10101010101010101 :      87381 : 1 : False
             1010101010101010101 :     349525 : 5 : False
           101010101010101010101 :    1398101 : 1 : False
         10101010101010101010101 :    5592405 : 5 : False
       1010101010101010101010101 :   22369621 : 1 : False
     101010101010101010101010101 :   89478485 : 5 : False
   10101010101010101010101010101 :  357913941 : 1 : False
 1010101010101010101010101010101 : 1431655765 : 5 : False
>>> 

Oddly enough, one might even conclude that the probability that any regular arrangement of bits is a prime is very small, if not zero.

1 Like