Si un entier positif a (strictement) moins de facteurs premiers (sans compter les multiplicités) que son successeur et son prédécesseur, nous l'appellerons un nombre pauvre en facteurs .
En d' autres termes, et , où est le nombre de facteurs premiers uniques de .
Tâche
Vous pouvez choisir parmi les formats d'E / S suivants:
- Prenez un entier et sortez le nombre pauvre en facteur. Si vous choisissez celui-ci, peut être indexé 0 ou 1.
- Prenez un entier positif et sortez les premiers nombres pauvres en facteurs.
- Imprimez la séquence indéfiniment.
Vous pouvez prendre des entrées et fournir des sorties via n'importe quelle méthode standard , dans n'importe quel langage de programmation , tout en prenant note que ces failles sont interdites par défaut. C'est le golf de code, donc la soumission la plus courte qui respecte les règles l'emporte.
Je n'inclurai pas de cas de test séparés, car les méthodes de compétition sont différentes, mais vous pouvez vous référer aux 100 premiers termes de cette séquence, qui est OEIS A101934 :
11, 13, 19, 23, 25, 27, 29, 37, 41, 43, 47, 49, 53, 59, 61, 64, 67, 71, 73, 79, 81, 83, 89, 97, 101, 103, 107, 109, 113, 121, 125, 131, 137, 139, 149, 151, 155, 157, 163, 167, 169, 173, 179, 181, 191, 193, 197, 199, 211, 221, 223, 227, 229, 233, 239, 241, 243, 251, 259, 263, 265, 269, 271, 277, 281, 283, 289, 293, 307, 309, 311, 313, 317, 331, 337, 341, 343, 347, 349, 353, 359, 361, 365, 367, 371, 373, 379, 383, 389, 397, 401, 407, 409, 419, 421, 431, 433, 439, 441, 443
Par exemple, se produit dans cette séquence parce que (5), \ omega (26) = 2 (2 et 13) et \ omega (24) = 2 (2 et 3), donc \ omega (25) <\ omega (24) et \ omega (25) <\ omega (26) .ω ( 25 ) = 1 ω ( 26 ) = 2 ω ( 24 ) = 2 ω ( 25 ) < ω ( 24 ) ω ( 25 ) < ω ( 26 )
n =
avant chaque valeur?Réponses:
Brachylog , 21 octets
Essayez-le en ligne!
Imprime à l'infini.
Explication
la source
Gelée ,
1312 octetsImprime les n premiers nombres pauvres en facteurs.
Essayez-le en ligne!
Comment ça fonctionne
la source
Python 2 ,
123119 octetsEssayez-le en ligne!
la source
MATL ,
262422 octetsImprime la séquence indéfiniment.
Essayez-le en ligne!
Explication
la source
Husk , 22 octets
Imprime la séquence indéfiniment, essayez-la en ligne ou consultez le premier N !
Alternativement,
§oΛ>←t
pourrait être utilisé à la place deΠtSM<←
.Explication
la source
Pyth , 14 octets
Essayez-le ici!
C'était initialement une suggestion sur la réponse de Dopapp , mais ils m'ont dit de la poster séparément.
Comment ça fonctionne?
la source
Haskell,
10586 octetsMerci à @Wheat Wizard, @Bruce Forte et @Laikoni pour avoir économisé 19 octets.
[n|n<-[2..],d n<d(n-1),d n<d(n+1)] d x=[1|n<-[1..x],x`rem`n<1,all((>0).rem n)[2..n-1]]
la source
rem
==0
et/=0
peut être remplacé avec<1
et>0
respectivement.let
, définissantd
que la fonction auxiliaire est très bien (voir le guide des règles du golf ).sum
Peut également être omis, la comparaison fonctionne de la même manière sur les listes. 86 octets: essayez-le en ligne!Octave ,
878379 octetsMerci à @Cows quack d'avoir enregistré un octet et merci à @Luis Mendo d'avoir enregistré
troissix octets!Imprime la séquence indéfiniment.
Essayez-le en ligne!
73 octets avec interligne
n =
avant chaque valeur:Essayez-le en ligne!
la source
f
peut devenirf=@(n)length(unique(factor(n)))
pour un octet de moins.05AB1E ,
1413 octetsProduit le nième nombre pauvre en facteurs (indexé 1)
Essayez-le en ligne!
Explication
la source
µ
, donc je suppose que je vais juste souligner mon alternative -N<N>Ÿ
peut remplacer3LN+Í
, si cela aide.®XŸN+
fonctionne également. Ou0®X)N+
dans ce casÀ
, ne serait pas nécessaire. Malheureusement, ils se retrouvent tous au même nombre d'octets.Pyth,
3025 octetsCeci est mon premier vrai golf Pyth, donc tous les commentaires sont très appréciés.
Un grand merci à Xcoder!
Explication
TIO .
la source
.f!-.ml{Pb}tZh
(imprime le premier n) (.f
récupère les n premières valeurs qui satisfont une condition[1,2,3,...]
et utilise une variableZ
,}tZh
génère la plage entière[Z - 1 ... Z + 1]
,.m
retourne la liste des éléments avec une valeur de fonction minimale (avecb
),l{Pb
obtient le nombre de diviseurs distincts,-
élimineZ
de la liste,!
applique la négation logique)h
is+1
,t
is-1
, whileK
est une variable qui est affectée sans=
. Par exemple,K4
attribueK
à4
. Vous pouvez ensuite y accéder en utilisantK
.JavaScript (ES6), 94 octets
Renvoie le Nième nombre pauvre en facteurs, indexé sur 0.
Essayez-le en ligne!
Comment?
Nous définissons d'abord la fonction P () qui renvoie le nombre de facteurs premiers uniques d'un entier donné.
Le code d'habillage se lit désormais comme suit:
la source
Japt ,
292726 octetsPas entièrement satisfait de cela mais au moins c'est mieux que ma première tentative qui faisait plus de 40 octets!
Sort le
N
numéro e de la séquence, indexé sur 1.Essayez-le
Explication
Saisie implicite d'entier
U
.Renvoie le premier entier
X
qui retourne vrai lorsqu'il est passé par la fonction suivante.Attribuez le tableau
[-1,0,1]
àX
.Passez chaque élément de ce tableau à travers une fonction qui ajoute d'abord la valeur actuelle de
X
.Obtenez la longueur (
Ê
) desâ
facteurs premiers uniques ( ) (k
) du résultat.Faites pivoter le tableau résultant vers la droite.
Pop (
o
) le dernier élément deX
et vérifiez si tous les éléments restants sont supérieurs à lui.Si c'est le cas, décrémentez
U
et vérifiez s'il est égal à 0.la source
Python 3 , 97 octets
En théorie, cela imprime la séquence indéfiniment. En pratique,
g
dépasse éventuellement la limite de récursivité.Essayez-le en ligne!
la source
C (gcc) , 126 octets
Essayez-le en ligne!
la source
Propre ,
130123117 octetsCorrespond à un nombre infini de termes de la séquence. Puisqu'il s'agit de compréhensions imbriquées, il ne peut pas très bien profiter de la réduction de graphique et est donc assez lent, même pour un algorithme aussi mauvais.
Essayez-le en ligne!
la source
APL NARS, 124 octets, 62 caractères
Il doit renvoyer la réponse jusqu'à 1E4, puis retourner l'erreur -1; il suppose que 9..10xargument a suffi aux bons nombres; tester:
la source