Étant donné un entier positif n, les entiers a et b (formant une fraction réduite a / b ) tels que:
Où p k est le k ème nombre premier (avec p 1 = 2).
Exemples:
1 -> 3, 5
2 -> 12, 25
3 -> 144, 325
4 -> 3456, 8125
5 -> 41472, 99125
15 -> 4506715396450638759507001344, 11179755611058498955501765625
420 -> very long
Les vérifications probabilistes de prime sont autorisées, et ce n'est pas grave si votre réponse échoue en raison de limitations dans le type entier de votre langue.
Le code le plus court en octets gagne.
code-golf
arithmetic
orlp
la source
la source
3.0
au lieu de3
?a
etb
comme un type rationnel?Réponses:
M , 9 octets
Essayez-le en ligne!
Trivia
Rencontrez M!
M est une fourchette de Jelly, destinée aux défis mathématiques. La principale différence entre Jelly et M est que M utilise une précision infinie pour tous les calculs internes, représentant symboliquement les résultats. Une fois que M sera plus mature, Jelly deviendra progressivement plus polyvalente et moins orientée mathématique.
M est beaucoup de travail en cours (plein de bugs, et pas vraiment que différent de Jelly en ce moment), mais il fonctionne comme un charme pour ce défi et je ne pouvais pas résister.
Comment ça fonctionne
la source
ÆN
le seul opérateur spécifique à M? Aussi MellyMathematica, 32 octets
Une fonction sans nom qui prend une entrée entière et renvoie la fraction réelle.
Cela utilise le fait que . Le code est ensuite joué grâce au fait que Mathematica enfile toute l'arithmétique de base sur des listes. Nous créons donc d'abord une liste , puis récupérons tous ces nombres premiers et connectons cette liste à l'expression ci-dessus. Cela nous donne une liste de tous les facteurs. Enfin, nous multiplions tout ensemble en appliquant à la liste, qui peut être jouée au golf .
(p2-1)/(p2+1) = 1-2/(p2+1)
{1, 2, ..., n}
Times
1##&
Alternativement, nous pouvons utiliser
Array
pour le même nombre d'octets:la source
1-2
=1
, non?-1
fait), mais1-2/x ≠ -1/x
. ;)@Range@
±~Array~
Python 2, 106 octets
Les première et quatrième lignes font tellement mal ... il s'est avéré qu'il
Fraction
était préférable d' utiliser que de multiplier séparément et d'utilisergcd
, même en Python 3.5+ oùgcd
résidemath
.Prime generation adaptée de la réponse de @ xnor ici , qui utilise le théorème de Wilson.
la source
Rubis,
1227765 octetsMerci à Sherlock d'avoir rasé 10 octets.
Définit une fonction anonyme qui prend un nombre et renvoie un
Rational
.la source
PARI / GP , 33 octets
Version alternative (46 octets):
Version non concurrente donnant le résultat à virgule flottante (
t_REAL
) (38 octets):la source
Gelée ,
1413 octetsEssayez-le en ligne! Merci à @Dennis pour -1 octet.
la source
Pyth,
2625Essayez-le ici ou exécutez la suite de tests .
1 octet économisé grâce à Jakube!
Mise en œuvre assez naïve du cahier des charges. Utilise le "nouveau" (je ne sais pas quand cela a été ajouté, mais je ne l'ai jamais vu auparavant)
P<neg>
qui retourne si la valeur positive d'un nombre négatif est première ou non. Une partie de la cartographie, etc. peut probablement être jouée au golf ...la source
Julia,
5942 octetsIl s'agit d'une fonction anonyme qui accepte un entier et renvoie un
Rational
avecBigInt
numérateur et dénominateur.On commence par générer la liste des nombres premiers inférieurs à 2 n 2 et sélectionner les n premiers éléments. Cela fonctionne parce que le n ème premier est toujours inférieur à n 2 pour tout n > 1. ( Voir ici .)
Pour chaque p des n nombres premiers sélectionnés, nous quadrillons p en utilisant la puissance par élément (
.^2
), et construisons le rationnel 2 / ( p + 1), où 2 est d'abord converti en aBigInt
pour assurer une précision suffisante. Nous soustrayons cela de 1, prenons le produit du tableau résultant de rationnels et retournons le rationnel résultant.Exemple d'utilisation:
Enregistré 17 grâce à Sp3000!
la source
Convexe, 28 octets
Convex est un nouveau langage que je développe qui est fortement basé sur CJam et Golfscript. L'interprète et l'IDE peuvent être trouvés ici . L'entrée est un entier dans les arguments de la ligne de commande. Les index sont à base unique. Utilise l'encodage CP-1252.
Vous pouvez ou non considérer cette réponse comme concurrente, car je travaillais sur quelques fonctionnalités que ce programme utilise avant la publication du défi, mais la validation a été effectuée une fois que j'ai vu ce défi disparaître.
la source
MATL , 18 octets
Essayez-le en ligne!
Échoue pour les entrées volumineuses car seuls les nombres entiers jusqu'à
2^52
peuvent être représentés avec précision en interne.Explication
la source
Mathematica, 45 octets
Primes? Des fractions? Mathematica.
la source
Haskell, 53 octets
Fonction anonyme, 53 caractères:
Essayez-le ici (remarque: dans GHCi standard, vous devez d'abord vous assurer
Data.Ratio
etData.List
sont importés):L'indexation de liste de Haskell
!!
est basée sur 0.(___!!)
est une section opérateur , formant une fonction anonyme afin que(xs !!) n == xs !! n
.C'est quatre octets de moins pour générer la séquence entière:
la source
Sérieusement, 25 octets
Sorties
a\nb
(\n
est une nouvelle ligne). Les grandes entrées prendront beaucoup de temps (et pourraient échouer en raison d'un manque de mémoire) car la génération principale est assez lente.Essayez-le en ligne!
Explication:
la source