La conjecture de Goldbach déclare que:
chaque nombre pair supérieur à 2 est la somme de deux nombres premiers.
Nous considérerons une partition de Goldbach d'un nombre n comme une paire de deux nombres premiers additionnant n . Nous sommes préoccupés par le nombre est d'augmenter la partition Goldbach . Nous mesurons la taille des partitions Goldbach d'un nombre par la taille du plus petit nombre premier dans toutes les partitions de ce nombre. Un nombre augmente de partition si cette taille est supérieure à la taille de tous les petits nombres pairs.
Tâche
Etant donné un entier pair n> 2 , déterminez si n a une partition Goldbach croissante et affichez deux valeurs uniques, une si elle l'est et une si elle ne l'est pas.
Il s'agit de code-golf , vous devez donc viser à réduire le nombre d'octets dans votre code source.
la source
Réponses:
Gelée , 12 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
PHP , 154 octets
Essayez-le en ligne!
Étendu
Essayez-le en ligne! Vérifiez tous les numéros jusqu'à 1000
la source
JavaScript (ES6), 135 octets
Utilise une logique similaire à la réponse PHP de Jörg .
Démo
Afficher l'extrait de code
la source
Python 3:
156151142 142138136128 octets(merci à OP)
(merci à @Rod) (encore) (et encore)
la source
max
avec la clé renvoie l'élément avec une valeur maximale après avoir appliqué la clé, j'ai dû ajouter une application de fonction mais elle est néanmoins plus courte.range
carn
étant délimité à l'intérieurlambda
.max(map(m,r[::2]))
f
et pouvez ainsi économiser 2 octets en supprimant lef=
.Python 3:
204196 octetsOctets économisés grâce à: Olm Man
Essayez-le en ligne!
la source
min
etall
peuvent prendre des générateurs comme arguments, cela signifie que celamin([...])
peut être raccourcimin(...)
et le même avec tous. Vous pouvez également vous débarrasser de certains espaces, en particulier de l'espace à l'intérieurimport *
et de tout espace après les accolades, je vois que vous en avez un aprèsrange(g)
et un avant[i for i in ...
, aucun n'est nécessaire.all(n%i for i in range(2,g))
, mais vous devez changerrange(g)
àrange(1,g)
parce que cela donne un faux positif sur 1.