Skip to content

Instantly share code, notes, and snippets.

@Atlas7
Last active July 14, 2017 14:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Atlas7/5eaac388bf61c3bb3c594782ba1946fd to your computer and use it in GitHub Desktop.
Save Atlas7/5eaac388bf61c3bb3c594782ba1946fd to your computer and use it in GitHub Desktop.
bitwise.md

I've recently bumped into this pretty interesting mini Intel Developer Zone challenge on Facebook:

How can you use eight 8s to get the number 1000?

IDZpic

So I decided to give it a go - and (I think) I successfully solved it. Took me 5 minutes experimenting.

The first thing I see when I see the number 8 is 2**3 (two to the power of 3). This implies it could be something to do with binary system.

Then I see the number 1000 - could this be binary 1000 (i.e. representing decimal number 8)?

I ended up writing a one line Python 3.6 code:

print(bin(8 >> (8//8//8//8//8//8//8)))

Evaluating the floor division //, the code effectively is the same as:

print(bin(8 >> 0))

i.e. right shift the binary 1000 by 0 bit to 1000 (i.e. no change!). And of course this prints out:

0b1000

Lesson learnt of the day!

Answers from other participants

I've also obtained the following really cool answers from others on Facebook:

Cool answer 1:

888 + 88 + 8 + 8 + 8 = 1000

Cool answer 2:

8888 / 8.888 = 1000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment