Esse desafio foi originalmente protegido por Magic Octopus Urn; Eu adotei e publiquei com sua permissão.
Este é o tópico dos policiais. A discussão dos ladrões está aqui .
O desafio
- Etapa 1: Escreva um código (função ou programa completo) que verifique a primalidade .
- Etapa 2: Remova partes do seu código substituindo caracteres pelo símbolo
█
. - Etapa três: Poste o código editado no tópico da polícia.
- Etapa quatro: espere que seu código seja decifrado e tente decifrar o código de outra pessoa.
Por exemplo, o código Groovy {it.isPrime()}
pode se tornar {██.is█████()}
. (Este seria estupidamente fácil de decifrar; também, eu sei, .isPrime()
não é um método Groovy.)
Pontuação
Você deve incluir a pontuação do seu programa em seu envio. A pontuação é definida como a proporção de caracteres editados por caracteres. Portanto, se seu programa tivesse 20 caracteres e 5 fossem editados, sua pontuação seria 0,25. O código Groovy acima teria uma pontuação de 0,5.
Regras
- Seu programa só precisa manipular números inteiros positivos. Deverá gerar um valor verdadeiro se o número for primo e um valor falso, caso contrário. Especifique na sua resposta o que ele gera.
- Seu código não pode conter nenhum comentário ou espaço em branco desnecessário.
- Sem hash ou ofuscação criptográfica.
- Seu código não pode ter mais de 50% de redação (pelo menos 1/2 dos caracteres devem ser mostrados). Isso significa que a pontuação mais alta possível é 0,5.
- Se a sua resposta não for apresentada dentro de uma semana, você pode marcá-la como segura e editá-la no crack pretendido.
Ganhando
O vencedor será a resposta sem quebra de pontuação mais baixa dentro de duas semanas após a publicação. No caso de empate, o que tiver mais votos ganhará. Este tópico está sempre aberto a mais submissões, mas o vencedor escolhido após duas semanas será permanente.
n >= 1
ou todos os inteiros?)Respostas:
Functoide , pontuação = 14/223 ≈ 0,062780 [seguro]
Recebe a entrada como argumento da linha de comando e gera saídas
True
(prime) ouFalse
, experimente online!Dica (adicionada 4 dias após a postagem):
Solução
Experimente online!
Explicação
Devido à aleatoriedade resultante
?
, não é possível achatar o programa. Aqui está o programa simples com um ponto de interrogação onde uma expressão aleatória estará:Programa completo:
O
{trial_division}
:{recursive_call}
, recebendo argumentosf
(auto-referência)x
ey
(a nota0
é a mesma queFalse
){divides}
é?(yg(KZ)(C(C(BB(BS(b(C(BBI)I))))(C(BC(b(C(BBI)I)))I))(C-)))
onde?
é escolhido aleatoriamente (dependendo da direção aleatória) entre:Y
S(CBO)(CBO)
S(SB(KO))(BBSBKO)
Eles são todos equivalentes entre si, então
{divides}
se torna o ponto de correção de:{recursive_call}
é uma expressão bastante ofuscada que basicamente apenasf x (y-x)
fonte
8086 DOS COM, 87 bytes, pontuação 19/87 ~ = 0,2183
Rachado por NieDzejkob
Este é um programa COM; espera número como argumento da linha de comando, gera Y ou N. Limite: 65535 porque o processador de 16 bits (sizeof (int) seria 2). A nova linha é 0x0D 0x0A nesta plataforma. Sim, você conta 20 █ em vez de 19 █. Um deles é real e não foi substituído. Muhahaha.
O espaço na posição 10 é realmente um byte NUL. O símbolo para NUL é o mesmo que espaço na fonte VGA antiga.
fonte
╛üX
no início émov si, 0x5881
.Swift 4 , pontuação 26/170 ≈ 0.153, seguro
Experimente online!
Rachadura pretendida
Ungolfed
fonte
brainfuck , 37/540 bytes (score: 0.06851) ( Rachado por Nitrodon)
Experimente online!
Imprime "prime" se prime, "not prime" se composto. Tecnicamente funciona para números inteiros arbitrários, mas expira o tempo limite no TIO para números acima de 6000
fonte
Mathematica, 97 bytes, pontuação 0,2989690722 ( Rachado )
Cordas! Regex! Primes?
Não é uma coisa como um primality verificando regex, mas isso não é o que está acontecendo aqui.
Isso foi decifrado , mas a maneira como eu pretendia era bem diferente, então ainda não revelarei a solução pretendida.
fonte
Geléia , pontuação 0. (142857) ( rachado )
Experimente online!
Repost da minha outra resposta, desta vez com mais alguns bytes revelados para evitar truques não intencionais.
fonte
Oitava , Pontuação: 0.15 (86 bytes)
Eu revelei vários outros personagens. Eu pensei que o critério de vitória era a pontuação mais alta, não a mais baixa .
Experimente online!
Boa sorte =)
fonte
Python 3, 388 bytes, .155, Rachado
Rachadura de última hora. Sim, este é o teste de Miller-Rabin.
Suponho que testes probabilísticos sejam permitidos, incerteza 2 ^ -100
Bem, uma ótima dica na frase anterior
Tornou o valor de retorno 0 como COMPOSTO e 1 como PROVÁVEL PRIME
* 368> 388: Corrigido o problema quando z <4
Solução:
fonte
"COMPOSITE"
viola o espírito da regra "Seu código pode não conter comentários ou espaço em branco desnecessário".095 , pontuação 0,20512820512 [Seguro]
Imprime 1 se prime, 0 se composto
Solução:
fonte
Nó JavaScript, pontuação: 0.4
Aqui é onde funciona. Programa completo que recebe a entrada do primeiro argumento da linha de comando e produz para o stdout.
Felizmente, uma solução não tão difícil para começar isso.
Usando esse trecho para calcular a pontuação.
fonte
Geléia , pontuação 0. (142857)
Experimente online!
Aceita um argumento de linha de comando.
Falso =
0
Verdadeiro =
1
fonte
JavaScript, 103 bytes, pontuação 0.1923
x=>{if(x<4)return(!0);for(y=x>>>Math.log10(p=████;--y-1;(p=x/y%1)████if(██&&(███))break████return(███)}
Retorna um booleano.
Rachadura não intencional
fonte
Javascript, pontuação 0.1894093686354379
Boa sorte. : p
chame f com o primo que deseja verificar.
fonte
t
.> <>, pontuação 0,096, quebrada por Jo King
Rachadura pretendida:
fonte
v
um loop infinito incondicional?Brain-Flak, Pontuação: 35/134 = 0.2612 ( rachado! )
(({████){██[████)█>(({}))<>}<>{}███{}((██({}))█████{}]██)({}(<>))<>{(({})){({}[()])<>}{}}{}<>([{}()]{})██[██()██(()█[()]██{}██}{}<>{})
Retorna 1 para prime, 0 para composto.
Essa é uma linguagem muito difícil de enfrentar esse desafio, pois a formatação é tão restrita que é necessário um esforço para não tornar óbvio qual é o caractere ausente.
Essa é uma linguagem muito difícil de resolver, pois é ridiculamente difícil de ler.
fonte
Java 1.4+ , 24/145 (0.16551724137)
Experimente online!
Maneira mais estranha que eu já vi fazer o check-in em Java de longe, lol.
fonte
Japt, 19 bytes, 0.315789 ... pontuação, Seguro
Não sei se obscureci mais do que precisava, custando-me uma pontuação melhor.
View solution (Explicação em breve)
fonte
C, 34/76 = 0,447368, Seguro
Ter tantos espaços em branco significa que terei muito mais chances de ter uma rachadura não intencional do que a pretendida.
Solução:
explicação:
fonte
M , pontuação: 4/22 = 0,1818 ..., rachado por Dennis
Isso pode acabar com uma rachadura não intencional, teremos que ver.Sim.As soluções de Dennis são
Experimente online!
Deixarei minha solução oculta para alguém quebrar. Minha dica para Dennis na submissão de ladrão foi a palavra "zoológico".
fonte
C, 66 bytes, 29 redigido, pontuação 0,439
Apenas um simples envio de C; Vou ver quanto tempo demora para publicar uma realmente má.
fonte
Pyth , pontuação: ~ 0. (461538) (13 bytes) ( Cracked )
Tente decifrá-lo aqui!
fonte
sh + coreutils, pontuação 19/143 ~ = 0.1328
rachado
TIO
fonte
Brain-Flak , pontuação 29/140 = 0.207
({}██()██<>){██({}[()])██{}{}███({<({}[()])><>({})<>}{}██████{}██){(({})){({}[()])<>}{}}<>([{}()]{}<>{})<>}(<>██{}({}████)((){[()]██{}██}{})
Experimente online!
Saídas 1 para prime e 0 para não prime.
fonte
Tampio (imperativo), pontuação: 24/51 = 0,5
Esta é uma solução óbvia, espero que ninguém aqui compreenda finlandês.
fonte
Tampio (imperativo), pontuação: 26/223 = 0.11659 ...
fonte
Pyt , pontuação: 0.288288 ... [Seguro]
Saídas "True" se for prime, "False" se não for
Esqueci de mencionar que é um teste probabilístico.
Solução:
Isso implementa o teste de primalidade de Solovay-Strassen.
Experimente online aqui!
fonte
Ruby, 27/73 = 0,369863
Isso deve ser divertido.
fonte
Python 3 , pontuação: 0.386363, rachado
Indo para a fruta realmente baixa em primeiro lugar. Em breve, apresentarei uma resposta atrevida.
user71546 fez com que "funcionasse" com
... mas isso não foi intencional. O código original era
Nem trabalho para x <2, acaba. Opa
fonte
JavaScript (ES7), 297 bytes, 103 redigido, .347
Minha resposta anterior do Python foi muito direta, então aqui está uma má;)
A lógica por trás é simples, porém.
fonte