Bei dieser Herausforderung versuchen wir, zwei wichtige Probleme gleichzeitig zu lösen. Sie sind:
- Sagen Sie bei gegebenen ganzen Zahlen a und b , ob a b -1 eine Primzahl ist.
- Gegeben ganze Zahlen a und b , Rückkehr nCr (a, b).
Insbesondere müssen Sie zwei Programme schreiben, eines für die erste und eines für die andere Aufgabe. Da wir beide Probleme gleichzeitig lösen möchten, wird empfohlen, in beiden Programmen denselben Code zu verwenden.
Wertung
Die Punktzahl einer Antwort ist der Levenshtein-Abstand zwischen den beiden Programmen. Niedrigere Punktzahl ist besser. Bei einem Unentschieden gewinnt die Antwort mit dem kürzesten kombinierten Code der beiden Programme. Mit diesem Skript können Sie die Bewertung Ihrer Lösung berechnen.
Regeln
- Sie müssen zwei Programme in derselben Sprache schreiben, die die oben beschriebenen Aufgaben lösen. Sie können beliebige E / A-Methoden verwenden. Für Aufgabe 1 können Sie einen Wahrheits- / Falschwert zurückgeben oder zwei Werte auswählen, die "wahr" und "falsch" bedeuten, und sie entsprechend zurückgeben. Z.B. Sie können wählen, dass
"prime"
dies wahr und"not prime"
falsch bedeutet. - Die von Ihnen verwendeten Algorithmen müssen für alle möglichen Eingaben funktionieren, es ist jedoch in Ordnung, wenn der Code aufgrund der Einschränkungen des verwendeten Nummerntyps für große Nummern fehlschlägt. Sie können davon ausgehen, dass die Eingabe gültig ist.
Keine Untermenge des Programms darf das Problem lösen, dh. Der Code darf nicht funktionieren, wenn Zeichen entfernt werden. Der folgende Code ist zum Beispiel ungültig, da es möglich ist, den nicht verwendeten else-Block zu entfernen, ohne das Programm zu unterbrechen:
if (1) { /* change to 0 to get the second program*/ ... } else { ... }
Standardlücken sind nicht erlaubt.
Testfälle
a b -1 ist prime?
a b
1 1 false
2 3 true
5 2 false
2 5 true
4 3 false
2 7 true
nCr
a b nCr(a,b)
1 1 1
5 2 10
4 3 4
10 7 120
12 5 792