Powinieneś napisać 3 programy i / lub funkcje w jednym języku.
Wszystkie te programy powinny rozwiązać to samo zadanie, ale wszystkie powinny dawać inne (ale prawidłowe) wyniki. (Tj. Dla każdej pary programów powinny być jakieś dane wejściowe, które generują różne (ale prawidłowe) zestawy liczb wyjściowych.)
Zadanie
- Otrzymujesz liczbę całkowitą
n
większą niż 1 - Powinieneś zwrócić lub wypisać
n
różne dodatnie liczby całkowite i żadna z nich nie powinna być podzielna przezn
. - Kolejność liczb nie ma znaczenia, a permutacja liczb nie liczy się jako różne dane wyjściowe.
Prawidłowy tryplet programów z niektórymi input => output
parami:
program A:
2 => 5 9
4 => 5 6 9 10
5 => 2 4 8 7 1
program B:
2 => 1 11
4 => 6 9 1 2
5 => 4 44 444 4444 44444
program C (differs only in one number from program B):
2 => 1 13
4 => 6 9 1 2
5 => 4 44 444 4444 44444
Punktacja
- Twój wynik to suma długości 3 programów lub funkcji.
- Niższy wynik jest lepszy.
- Jeśli twoje programy / funkcje współużytkują kod, wspólny kod należy policzyć do długości każdego programu, który korzysta z tego kodu.
code-golf
number
arithmetic
number-theory
randomra
źródło
źródło
Odpowiedzi:
Pyth,
1716 bajtów5 bajtów:
Wyjścia:
6 bajtów:
Wyjścia:
5 bajtów:
Wyjścia:
Alternatywna wersja, w kolejności rosnącej:
-ShQQ
źródło
J, 16 bajtów
Funkcja 1, 5 bajtów
Funkcja 2, 6 bajtów
Funkcja 3, 5 bajtów
Jak to działa
Funkcja 1
Ponieważ P jest liczbą pierwszą, a P> y , y nie może podzielić P e .
Funkcja 2
Jeżeli Y podzielony P e + y , to będzie także podzielić P e + Y - Y = P e .
Funkcja 3
Jeżeli Y podzielony (r + 1) e jakiś czynnik pierwszy P z y musiałyby podziału (r + 1) e .
Ale wtedy Q dzieliłoby oba y i y + 1, a zatem y + 1 - y = 1 .
źródło
Dyalog APL,
1617 bajtówźródło
Vitsy , 54 bajty
Programy:
Wyjścia:
Jak to działa (używając pierwszego programu jako wyjaśnienia):
Wypróbuj online!
źródło
Perl, 79
Jeden znak dodany do każdego programu, ponieważ wymaga
-n
flagi.Dość bezpośredni.
źródło
Mathematica, 12 + 12 + 12 = 36 bajtów
Testy:
źródło
CJam, 8 + 8 + 8 = 24 bajty
Są to trzy nienazwane funkcje, które oczekują
n
na stosie i pozostawiają listę liczb całkowitych na swoim miejscu. Nie jestem pewien, czy jest to optymalne, ale później będę musiał znaleźć krótsze rozwiązanie.Zestaw testowy.
Wyniki:
Pierwszy działa również jako
lub
źródło
Python 2, 79 bajtów
Trzy anonimowa funkcja zaczynają się
1
i liczyć się przez każdąn, 2*n, 3*n
zn
warunkami.źródło
Poważnie, 20 bajtów
Tak, to nie jest optymalne ...
źródło
Par , 16 bajtów
Opisane tutaj niestandardowe kodowanie wykorzystuje tylko jeden bajt na znak.
Wyjścia
źródło
Haskell, 54 bajty
Te trzy funkcje są dość proste, więc…
źródło
Oktawa, 11 + 13 + 13 = 37 bajtów
źródło
Python 2, 125 bajtów
Każda linia tutaj jest kompletnym programem. Najbardziej oczywiste rozwiązanie w mojej głowie.
EDIT @ Sherlock9 zapisał dwa bajty.
źródło
Haskell, 50
Przykłady:
źródło
Golfscript, 50
5157bajtówWersja Golfscript tego, co kiedyś było kodem Python quintopii . Każda funkcja
n
zdejmuje stos.źródło
TI-Basic (TI-84 Plus CE),
55ogółem 40 bajtówProste, podobne do wielu innych odpowiedzi tutaj, każda wyświetla listę liczb (X + A) N + 1 dla X w zakresie (N), a A oznacza, który program (1, 2 lub 3).
Stare rozwiązanie (55 bajtów):
Proste, podobne do wielu innych odpowiedzi tutaj, każda wyświetla liczby (X + A) N + 1 dla X w zakresie (N), a A oznacza, który program (1, 2 lub 3).
źródło