Diese Herausforderung wurde ursprünglich von Magic Octopus Urn sandboxed; Ich habe es mit seiner Erlaubnis adoptiert und veröffentlicht.
Das ist der Faden der Bullen. Der Räuberfaden ist da .
Die Herausforderung
- Erster Schritt: Schreiben Sie einen Code (Funktion oder vollständiges Programm), der auf Primalität prüft .
- Schritt 2: Entfernen Sie Teile Ihres Codes, indem Sie die Zeichen durch das Symbol ersetzen
█
. - Schritt Drei: Poste den überarbeiteten Code auf dem Cops-Thread.
- Vierter Schritt: Warten Sie, bis Ihr Code geknackt ist, und versuchen Sie, den Code eines anderen zu knacken.
Beispielsweise könnte der Groovy-Code {it.isPrime()}
werden {██.is█████()}
. (Dieser wäre blöd leicht zu knacken; ich weiß auch, dass .isPrime()
es keine Groovy-Methode ist.)
Wertung
Sie müssen die Punktzahl Ihres Programms in die Einreichung einbeziehen. Die Punktzahl ist definiert als das Verhältnis von redigierten Zeichen zu Zeichen. Wenn Ihr Programm also 20 Zeichen hätte und 5 Zeichen redigiert würden, wäre Ihre Punktzahl 0,25. Der obige Groovy-Code hätte eine Punktzahl von 0,5.
Regeln
- Ihr Programm muss nur positive ganze Zahlen verarbeiten. Es sollte ein wahrer Wert ausgegeben werden, wenn die Zahl eine Primzahl ist, andernfalls ein falscher Wert. Bitte geben Sie in Ihrer Antwort an, was ausgegeben wird.
- Ihr Code enthält möglicherweise keine Kommentare oder unnötige Leerzeichen.
- Kein Hashing oder kryptografische Verschleierung.
- Ihr Code darf nicht mehr als 50% reduziert sein (mindestens die Hälfte der Zeichen muss angezeigt werden). Dies bedeutet , dass die höchste mögliche Punktzahl ist 0,5.
- Wenn Ihre Antwort nicht innerhalb einer Woche geknackt wird, können Sie sie als sicher markieren und im beabsichtigten Riss bearbeiten.
Gewinnen
Der Gewinner ist die ungerissene Antwort mit der niedrigsten Punktzahl innerhalb von zwei Wochen nach der Veröffentlichung. Bei einem Unentschieden gewinnt derjenige, der die meisten Stimmen hat. Dieser Thread ist immer offen für weitere Einreichungen, aber der Gewinner, der nach zwei Wochen ausgewählt wird, ist endgültig.
n >= 1
oder alle ganzen Zahlen?)Antworten:
Functoid , score = 14/223 ≈ 0.062780 [sicher]
Nimmt die Eingabe als Befehlszeilenargument und Ausgänge
True
(prime) oderFalse
, versuchen Sie es online!Hinweis (hinzugefügt 4 Tage nach der Veröffentlichung):
Lösung
Probieren Sie es online!
Erläuterung
Aufgrund der Zufälligkeit ist
?
es nicht möglich, das Programm zu reduzieren. Hier ist das flache Programm mit einem Fragezeichen, in dem ein zufälliger Ausdruck steht:Volles Programm:
Die
{trial_division}
:{recursive_call}
, Argumente nehmenf
(Selbstreferenz)x
undy
(Notiz0
ist dasselbe wieFalse
){divides}
ist,?(yg(KZ)(C(C(BB(BS(b(C(BBI)I))))(C(BC(b(C(BBI)I)))I))(C-)))
wo?
zufällig ausgewählt wird (abhängig von der zufälligen Richtung) von:Y
S(CBO)(CBO)
S(SB(KO))(BBSBKO)
Diese sind alle gleichwertig und werden so
{divides}
zum Fixpunkt von:{recursive_call}
ist ein ziemlich verschleierter Ausdruck, der im Grunde genommen einfach funktioniertf x (y-x)
quelle
8086 DOS COM, 87 Bytes, Score 19/87 ~ = 0,2183
Gebrochene von NieDzejkob
Dies ist ein COM-Programm. Erwartet Zahl als Befehlszeilenargument, gibt Y oder N aus. Limit: 65535, da 16-Bit-Prozessor (sizeof (int) wäre 2). Newline ist 0x0D 0x0A auf dieser Plattform. Ja, Sie zählen 20 █ statt 19 █. Einer von ihnen ist ein echter █ und wurde nicht ausgewechselt. Muhahaha.
Das Leerzeichen in Position 10 ist eigentlich ein NUL-Byte. Das Symbol für NUL entspricht dem Leerzeichen in der alten VGA-Schriftart.
quelle
╛üX
steht ganz am Anfangmov si, 0x5881
.Swift 4 , Score 26/170 ≈ 0.153, sicher
Probieren Sie es online!
Beabsichtigter Riss
Ungolfed
quelle
Brainfuck , 37/540 Bytes (Score: 0.06851) ( Gebrochen von Nitrodon)
Probieren Sie es online!
Gibt "prime" aus, wenn prime, "not prime", wenn composite. Funktioniert technisch für beliebige Ganzzahlen, überschreitet jedoch das Zeitlimit für TIO für Zahlen über 6000
quelle
Mathematica, 97 Bytes, Ergebnis 0.2989690722 ( Gebrochen )
Saiten! Regex! Primes?
Gibt es so etwas wie einen Regex, der die Primalität überprüft, aber das ist nicht das, was hier passiert.
Dies wurde geknackt , aber die Art und Weise, wie ich beabsichtigte, war ganz anders, so dass ich die beabsichtigte Lösung noch nicht verraten werde.
quelle
Gelee , Punktzahl 0. (142857) ( geknackt )
Probieren Sie es online!
Repost meiner anderen Antwort, diesmal mit ein paar weiteren offenbarten Bytes, um unbeabsichtigte Cheats zu vermeiden.
quelle
Oktave , Partitur: 0.15 (86 Bytes)
Ich habe noch einige Charaktere enthüllt. Ich dachte, das Gewinnkriterium sei die höchste Punktzahl, nicht die niedrigste .
Probieren Sie es online!
Viel glück =)
quelle
Python 3, 388 Bytes, .155, geknackt
Last-Minute-Riss. Ja, das ist der Miller-Rabin-Test.
Ich nehme an, dass probabilistische Tests erlaubt sind, Unsicherheit 2 ^ -100
Nun, ein toller Hinweis im vorherigen Satz
Rückgabewert 0 als COMPOSITE und 1 als PROBABLY PRIME
* 368> 388: Das Problem wurde behoben, wenn z <4 ist
Lösung:
quelle
"COMPOSITE"
verstoßen gegen den Geist der Regel "Ihr Code darf keine Kommentare oder unnötige Leerzeichen enthalten."095 , score 0.20512820512 [Sicher]
Gibt 1 aus, wenn Primzahl, 0, wenn zusammengesetzt
Lösung:
quelle
Knoten JavaScript, Score: 0,4
Here's where it works. Full program that takes input from first command line argument, and outputs to stdout.
Hopefully, a not-so-difficult solution to start this off.
Using this snippet to calculate score.
quelle
Jelly, score 0.(142857)
Try it online!
Takes a command-line argument.
False =
0
True =
1
quelle
JavaScript, 103 bytes, score 0.1923
x=>{if(x<4)return(!0);for(y=x>>>Math.log10(p=████;--y-1;(p=x/y%1)████if(██&&(███))break████return(███)}
Returns a boolean.
Unintended crack
quelle
Javascript, score 0.1894093686354379
Good luck. :p
call f with the prime you want to check.
quelle
t
.><>, score 0.096, cracked by Jo King
Intended crack:
quelle
v
an unconditional infinite loop?Brain-Flak, Score: 35/134 = 0.2612 (cracked!)
(({████){██[████)█>(({}))<>}<>{}███{}((██({}))█████{}]██)({}(<>))<>{(({})){({}[()])<>}{}}{}<>([{}()]{})██[██()██(()█[()]██{}██}{}<>{})
Returns 1 for prime, 0 for composite.
This is a very hard language to try this challenge in, as the formatting is so restricted that it takes effort not to make it obvious what the missing character is.
This is a very hard language to solve this challenge in, as it is ridiculously hard to read.
quelle
Java 1.4+, 24/145 (0.16551724137)
Try it online!
Weirdest way I've seen to prime check in Java by far lol.
quelle
Japt, 19 bytes, 0.315789... score, Safe
I don't know if I obscured more of this than I needed to, costing myself a better score.
View solution (Explanation coming soon)
quelle
C, 34/76 = 0.447368, Safe
Having this many blanks means that I will be much more likely to get an unintended crack than the intended one.
Solution:
explanation:
quelle
M, score: 4/22 = .1818..., cracked by Dennis
This may end up with an unintended crack, we'll have to see.It did.Dennis' solutions is
Try it online!
I will leave my solution hidden for someone to crack. My hint to Dennis on his robber submission was the word "zoo".
quelle
C, 66 bytes, 29 redacted, score 0.439
Just a simple C submission; I'll see how long this one takes before I post a really evil one.
quelle
Pyth, score: ~0.(461538) (13 bytes) (Cracked)
Try to crack it here!
quelle
sh + coreutils, score 19 / 143 ~= 0.1328
cracked
TIO
quelle
Brain-Flak, score 29 / 140 = 0.207
({}██()██<>){██({}[()])██{}{}███({<({}[()])><>({})<>}{}██████{}██){(({})){({}[()])<>}{}}<>([{}()]{}<>{})<>}(<>██{}({}████)((){[()]██{}██}{})
Try it online!
Outputs 1 for prime and 0 for non-prime.
quelle
Tampio (imperative), score: 24/51 = 0.5
This is an obvious solution, I hope no one here understands Finnish.
quelle
Tampio (imperative), score: 26/223 = 0.11659...
quelle
Pyt, score: 0.288288... [Safe]
Outputs "True" if prime, "False" if not
Forgot to mention that it is a probabilistic test.
Solution:
This implements the Solovay-Strassen primality test.
Try it online here!
quelle
Ruby, 27/73 = 0.369863
This should be fun.
quelle
Python 3, score: 0.386363, cracked
Going for the really low hanging fruit at first. I'll come up with a cheeky answer soon.
user71546 made it "work" with
...but that was unintended. Original code was
Neither work for x<2, turns out. Oops.
quelle
JavaScript (ES7), 297 bytes, 103 redacted, .347
My previous Python answer was too straightforward, so here's an evil one ;)
The logic behind is straightforward though.
quelle