Dado um número inteiro não negativo, retorne se é um número de três dígitos que termina em um, em qualquer base inteira consistente. Em outras palavras, o número precisa ser representado na base-N, sendo N um número inteiro maior que zero.
Regras
- Isso é código-golfe , então a resposta mais curta vence.
- Como o unário se comporta de maneira estranha, o comportamento com a entrada 3 10 é indefinido.
- As brechas padrão são proibidas.
Exemplos
Verdade:
5
73
101
1073
17
22
36
55
99
Falso:
8
18
23
27
98
90
88
72
68
Um punhado de grandes números:
46656 true
46657 true
46658 true
46659 true
46660 true
46661 false
46662 false
46663 true
46664 false
46665 true
46666 true
46667 false
46668 false
46669 false
46670 true
46671 true
n
é apenasn
1
s, por exemplo0 = ()₁
,3 = (111)₁
,10 = (1111111111)₁
, etcRespostas:
Geléia , 7 bytes
Retorna o número de bases (diferente de zero sendo verdadeiro, zero sendo falso) em que a entrada é um número de três dígitos que termina em um.
Experimente online!
Como funciona
fonte
JavaScript (ES7),
434039 bytesCasos de teste
Mostrar snippet de código
Comentado
fonte
Python 3 ,
5047 bytes-2 bytes graças a @LeakyNun
-1 byte graças a @Dennis
Experimente online!
fonte
Haskell ,
4140 bytesObrigado ao @Zgarb por jogar fora um byte!
Experimente online!
fonte
Braquilog , 10 bytes
Experimente online!
fonte
05AB1E ,
118 bytesEconomizou 3 bytes graças a Adnan .
Experimente online!
Explicação
fonte
Gelatina , 12 bytes
Experimente online!
fonte
Mathematica, 43 bytes
Experimente online!
ou Experimente online! (grandes números)
Martin Ender salvou 3 bytes
fonte
!FreeQ[#~IntegerDigits~Range@#,{_,_,1}]&
é um pouco mais curto se você não se importa de ver oIntegerDigits::ibase: Base 1 is not an integer greater than 1.
aviso. (Ele ainda retorna as respostas corretas.)Wolfram Language (Mathematica) , 35 bytes
Experimente online!
Verifica explicitamente se n% i = 1 e i 2 <n <i 3 para qualquer base possível i . Para fins de golfe, a desigualdade é reorganizada em 1 <n / i 2 <i , para que possa ser acorrentada à igualdade.
fonte
Limpo ,
5856 bytes-2 graças a Dennis
Experimente online!
fonte
Casca , 10 bytes
Experimente online! Bem perto da resposta da geléia de Dennis .
fonte
APL (Dyalog Unicode) ,
212014 bytes SBCS-5 graças a @ngn.
Solução puramente aritmética (na verdade, não faz nenhuma conversão básica) e, portanto, muito rápida.
Experimente online!
⊢(
…)⍨1↓⍳
Em um descartado do argumento 1ndices 1… e o argumento, aplique:|
os remanescentes da divisão×∘⌈
vezes o arredondado⍟
argumento N do log3∊
três é um membro disso?fonte
⊢(∨/(3=∘⌈⍟)∧1=|)⍨1↓⍳
(⊂1 3)∊⊢(⌈|,¨⍟)⍨1↓⍳
3∊⊢(|×|×∘⌈⍟)⍨1↓⍳
1=⌈a⍟b
,a≤b
→a=b
→0=a|b
∵0=b|b
Pitão , 10 bytes
Verifique todos os casos de teste.
fonte
Casca , 15 bytes
Experimente online!
Explicação
fonte
PHP, 48 + 1 bytes
sai com
0
para falsidade (ou entrada3
),1
para verdade.Execute como pipe
-nR
ou experimente online .fonte
C, 60 bytes
Uma função que retorna diferente de zero se o argumento puder ser representado como um número de três dígitos que termina em 1:
Nota: isso funciona com o GCC, onde as funções estão embutidas. Para outros compiladores, você provavelmente precisará garantir que os tipos de argumento e retorno sejam conhecidos:
Explicação
A base mais baixa na qual
n
é representado em 3 dígitos é⌊∛n⌋
e a base mais baixa na qualn
é representada em 2 dígitos é⌊√n⌋
, então simplesmente testamos se o número é congruente a 1 módulo em qualquer base no intervalo de 3 dígitos. Retornamos a contagem do número de bases que satisfazem a condição, fornecendo um valor diferente de zero (verdade) ou zero (falsidade), conforme apropriado.Programa de teste
Passe qualquer número de entradas como parâmetros posicionais:
fonte
APL (Dyalog Unicode) , SBCS de 19 bytes
Método de Dennis .
Experimente online!
(⊂,1)∊
É[1]
membro de2↓¨
dois elementos caíram de cada um⊢⊥⍣¯1¨⍨
o argumento representado em cada uma das bases1↓⍳
uma queda dos Ɩ ndices 1 através do argumento?fonte
Julia , 31 bytes
Experimente online!
fonte
Pyt ,
3533 bytesExplicação:
Experimente online!
fonte
> <> , 42 bytes
Experimente online!
Retorna
10
para verdade,00
para falsey.fonte