Hipoteza Goldbacha stwierdza, że:
każda liczba parzysta większa niż 2 jest sumą dwóch liczb pierwszych.
Rozważymy partycję Goldbacha liczby n jako parę dwóch liczb pierwszych dodających do n . Mamy do czynienia z liczbami jest zwiększania partycji Goldbach . Mierzymy wielkość partycji Goldbach według rozmiaru najmniejszej liczby pierwszej we wszystkich partycjach tej liczby. Liczba rośnie, jeśli ten rozmiar jest większy niż rozmiar wszystkich mniejszych liczb parzystych.
Zadanie
Biorąc pod uwagę parzystą liczbę całkowitą n> 2 , określ, czy n ma zwiększającą się partycję Goldbacha, i wypisz dwie unikalne wartości, jedną, jeśli jest, a drugą, jeśli nie.
To jest golf-golf, dlatego należy dążyć do zminimalizowania liczby bajtów w kodzie źródłowym.
code-golf
number-theory
decision-problem
primes
Ad Hoc Garf Hunter
źródło
źródło
Odpowiedzi:
Galaretka , 12 bajtów
Wypróbuj online!
Jak to działa
źródło
PHP , 154 bajty
Wypróbuj online!
Rozszerzony
Wypróbuj online! Sprawdź wszystkie liczby do 1000
źródło
JavaScript (ES6), 135 bajtów
Wykorzystuje podobną logikę jak odpowiedź PHP Jörga .
Próbny
Pokaż fragment kodu
źródło
Python 3:
156151142138136128 bajtów(dzięki OP)
(dzięki @Rod) (ponownie) (i ponownie)
źródło
max
z kluczem zwraca element o maksymalnej wartości po zastosowaniu klucza, musiałem dodać aplikację funkcji, ale jest ona jednak krótsza.range
ponieważn
są one ograniczone w środkulambda
.max(map(m,r[::2]))
f
dzięki czemu możesz zaoszczędzić 2 bajty, usuwającf=
.Python 3:
204196 bajtówZapisane bajty dzięki: Olm Man
Wypróbuj online!
źródło
min
iall
może przyjmować generatory jako argumenty, oznacza to, żemin([...])
można je skrócićmin(...)
i to samo ze wszystkimi. Możesz także pozbyć się niektórych pól, szczególnie przestrzeni wimport *
nawiasie klamrowym i dowolnej przestrzeni po nawiasach klamrowych, widzę, że masz jedną porange(g)
drugiej i jedną wcześniej[i for i in ...
, żadne z nich nie jest konieczne.all(n%i for i in range(2,g))
, ale musisz zmienićrange(g)
na,range(1,g)
ponieważ daje to fałszywie dodatni wynik 1.