Given a number `n` we will define its scORe to be `0 | 1 | 2 | 3 | ... | n`, where `|` is the [bitwise OR operator](https://en.wikipedia.org/wiki/Bitwise_operation#OR).

Write a function that takes `n` and finds its scORe.

---------------------
|    n    | scORe n |
|---------|-------- |       
| 0       | 0 |
| 1       | 1 |
| 49      | 63 |
| 1000000 | 1048575 |


Difficulty: introductory

Starter code:

def score(n):
	

Solutions:
score=lambda n:2**n.bit_length()-1

score=lambda n:(1<<n.bit_length())-1

def score(n):
    # Good Luck!
    return 2**n.bit_length()-1

def score(n):
    res = n
    while n:
        res, n = res | n, n >> 1
    return res

def score(n):
    return 0 if n == 0 else n | int(n.bit_length() * '1', 2)

def score(n):
    return n if n < 2 else pow(2, int(__import__("math").log(n, 2)) + 1) - 1

from math import log; score=lambda n: 2**int(1+log(n,2))-1 if n else 0

def score(n):
    return n and 2**(len(bin(n))-2)-1

from math import ceil,log
def score(n):
    return 2**(ceil(log(n,2)))-1 if n>1 else n

from math import log2, ceil

def score(n):
    return n if n in (0, 1) else 2 ** (ceil(log2(n))) - 1