W tym wyzwaniu staramy się rozwiązać dwa ważne problemy jednocześnie. Oni są:
- Podane liczby całkowite i b , stwierdzić, czy b -1 jest liczbą pierwszą.
- Podane liczby całkowite i b , powrót NCR (a, b).
W szczególności musisz napisać dwa programy, jeden, który wykonuje pierwsze zadanie, a drugi, który wykonuje drugie. Ponieważ chcemy rozwiązać oba problemy jednocześnie, zaleca się użycie tego samego fragmentu kodu w obu programach.
Punktacja
Wynik odpowiedzi to odległość Levenshteina między dwoma programami. Niższy wynik jest lepszy. W przypadku remisu wygrywa odpowiedź z najkrótszym połączonym kodem dwóch programów. Możesz użyć tego skryptu, aby obliczyć wynik swojego rozwiązania.
Zasady
- Musisz napisać dwa programy w tym samym języku, które rozwiązują zadania opisane powyżej. Możesz użyć dowolnej metody we / wy. W przypadku zadania 1 możesz zwrócić wartość prawda / fałsz lub wybrać dwie wartości oznaczające prawda i fałsz i odpowiednio je zwrócić. Na przykład. możesz wybrać, co
"prime"
oznacza prawda, a"not prime"
fałsz. - Algorytmy, których używasz, muszą działać dla wszystkich możliwych danych wejściowych, ale jest to OK, jeśli kod zawiedzie w przypadku dużych liczb z powodu ograniczeń używanego typu liczb. Możesz założyć, że dane wejściowe są prawidłowe.
Żaden podzbiór programu nie może rozwiązać problemu, tj. kod nie może działać, jeśli zostaną usunięte jakiekolwiek znaki. Na przykład poniższy kod jest niepoprawny, ponieważ możliwe jest usunięcie nieużywanego bloku else bez uszkodzenia programu:
if (1) { /* change to 0 to get the second program*/ ... } else { ... }
Standardowe luki są niedozwolone.
Przypadki testowe
a b -1 jest liczbą pierwszą?
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