# Is it really a comcoin?

## Python 2, ~~62~~ ~~56~~ 49 bytes

```
lambda n:max(`n`)<"2"and 0x5d75d750>>int(`n`,2)&1
```

Credit to @Sp3000 for the `max`

trick to ensure binary digits.

### JavaScript (ES6), ~~38~~ 27 bytes

```
n=>2641714512>>'0b'+n&n<1e5
```

Port of @orlp's Python answer, except that JavaScript's precedence and weak typing allows me to shift the integer even if it's not valid in base 2, and then bitwise and it with the boolean. Returns 0 or 1 as appropriate. Note that I'm not using @orlp's constant any more, instead I'm assuming the following list of comcoins is valid:

100

110

1000

1010

1011

1100

1110

10000

10010

10100

10101

10110

11000

11010

11011

11100

11111

Edit: Fixed to check the length of the comcoin, since JavaScript's shift operator works modulo 32.

## MATL, 20 bytes

```
n6<G50<9:Q"[email protected]~vA
```

Input is a string.

**Try it online!**

### Explanation

```
n6< % take input implicitly. Is length less than 6?
G50< % push input again. Array that contains true for digits less than 2
9:Q % push array of bases: [2,3,...,10]
" % for each
G % push input again
@ % push current base
ZA % interpret input as if it were in that base, and convert to decimal
Zp~ % true for composite numbers
v % concatenate vertically all results up to now
A % true if all results were
% end for each implicitly
% display implicitly
```