Il semble que beaucoup de gens aimeraient l'avoir, c'est donc maintenant une suite à ce défi !
Définition : une puissance première est un nombre naturel qui peut être exprimé sous la forme p n où p est un nombre premier et n est un nombre naturel.
Tâche : Étant donné une puissance première p n > 1, renvoyez la puissance n.
Testcases :
input output
9 2
16 4
343 3
2687 1
59049 10
Notation : Il s'agit du code-golf . La réponse la plus courte en octets l'emporte.
code-golf
number
arithmetic
primes
Leaky Nun
la source
la source
Réponses:
05AB1E , 2 octets
Essayez-le en ligne!
la source
Ò
Push liste des facteurs premiers (avec doublons) etg
: Push longueur .Python 3 , 49 octets
Essayez-le en ligne!
Sorties
True
au lieu de 1 ( comme autorisé par OP ). Fonction récursive qui trouve à plusieurs reprises le facteur le plus bas, puis appelle à nouveau la fonction avec la puissance la plus faible suivante jusqu'à ce qu'elle atteigne 1. Ceci est une extension de ma réponse à la question précédente.la source
Pyth, 2
Compter les facteurs premiers:
Test en ligne .
la source
Python 2 , 37 octets
Essayez-le en ligne!
Compte les facteurs. Apparemment, j'ai écrit le même golf en 2015.
Surpasse de près le non récursif
Python 2 , 38 octets
Essayez-le en ligne!
la source
Utilitaires Bash + GNU, 22
Essayez-le en ligne!
la source
factor|sed s/\ //|wc -w
marche?factor|tr -cd \ |wc -c
?dc ,
5041 octetsEssayez-le en ligne!
Prend l'entrée du haut de la pile (dans TIO, placez l'entrée dans l'en-tête pour la charger sur la pile avant l'exécution). Sorties vers sortie standard.
Explication
Registres utilisés:
i
: le diviseur d'essai actuel, enX
cours d'exécution. Plus tard, le diviseur que nous avons trouvé.X
: la macrodli1+dsi%0<X
, qui a pour effet "incrémenteri
, puis vérifier le module avec la valeur sur la pile (qui sera l'entrée d'origine). Si ce n'est pas zéro, répéter".Y
: la macrodli/dli<Y
, qui a pour effet "Ajouter à la pile une copie du sommet actuel de la pile, divisé pari
. Répéter jusqu'à ce quei
soit atteint."Programme complet:
la source
face , 86 octets
Hourra, plus longtemps que Java!
Essayez-le en ligne!
J'aime particulièrement l'astuce d'utiliser la valeur de retour de
sscanf
. Normalement, la valeur de retour serait ignorée, mais ici, elle sera toujours 1, car nous lisons toujours un seul nombre en entrée. Nous pouvons en profiter en affectant sa valeur de retour à la variable1
, en économisant les 2 octets qui seraient autrement nécessaires pour affecter1
explicitement à 1.la source
Polyglotte Attache et Wolfram Language (Mathematica) , 10 octets
Essayez Attache en ligne! Essayez Mathematica en ligne!
Simplement une fonction intégrée pour calculer le nombre de facteurs premiers N a.
Explication
Puisque N = p k , Ω ( N ) = Ω ( p k ) = k , le résultat souhaité.
la source
Java 8, 59 octets
Un lambda de
int
àint
.Essayez-le en ligne
la source
J, 4 octets
q:
donne la liste des facteurs premiers,#
donne la longueur de la liste.Essayez-le en ligne!
la source
R , 37 octets
Essayez-le en ligne!
la source
sum(x|1)
est presque toujours plus court quelength(x)
Stax ,43 octets
Exécuter et déboguer
Longueur de la factorisation principale.
la source
MATL , 3 octets
Essayez-le en ligne!
Explication:
la source
Gelée ,
32 octetsEssayez-le en ligne!
la source
Espace, 141 octets
Lettres
S
(espace),T
(tabulation) etN
(nouvelle ligne) ajoutées uniquement en surbrillance.[..._some_action]
ajouté à titre d'explication uniquement.Essayez-le en ligne (avec des espaces bruts, des tabulations et des nouvelles lignes uniquement).
Explication en pseudo-code:
Exemple d'exécution:
input = 9
Le programme s'arrête avec une erreur: aucune sortie trouvée.
la source
Brachylog , 2 octets
Essayez-le en ligne!
Explication
la source
Python 2 , 62 octets
Essayez-le en ligne!
Rien d'extraordinaire ici.
la source
Japt , 3 octets
Essayez-le en ligne!
Explication:
la source
En fait , 2 octets
Essayez-le en ligne!
la source
Haskell , 27 octets
Essayez-le en ligne!
Compte les facteurs. Comparer:
Haskell , 28 octets
Essayez-le en ligne!
Haskell , 28 octets
Essayez-le en ligne!
Haskell , 30 octets
Essayez-le en ligne!
la source
Octave , 18 octets
Essayez-le en ligne!
Fait ce qu'il dit sur l'étain: Nombre d'éléments non nuls dans la factorisation principale de l'entrée.
la source
Cjam, 5 octets
Essayez-le en ligne!
Explication:
Les Builtins sont super!
la source
rimf,
(programme complet) et{mf,}
(fonction) seraient valides.QBasic, 51 octets
Utilise le même algorithme que la solution "Récupérer le premier" pour trouver la base, puis utilise des règles de logarithmes pour obtenir l'exposant:l o g( pn) = n ⋅ l o g( p ) .
la source
Gaia , 2 octets
Essayez-le en ligne!
la source
JavaScript (ES6), 37 octets
Essayez-le en ligne!
la source
Perl 6 , 36 octets
Recherche le premier facteur
(2..*).first: $_%%*
, puis calcule la valeur approximative (les journaux ne l'obtiendront pas exactement) et l'arrondit.Essayez-le en ligne!
la source
Pari / GP , 8 octets
Essayez-le en ligne!
Pari / GP , 14 octets
Essayez-le en ligne!
la source
Raquette , 31 octets
Essayez-le en ligne!
la source
Perl 6 , 18 octets
Essayez-le en ligne!
Bloc de code anonyme qui obtient une liste de facteurs et le contraint à un nombre.
la source
JavaScript (Node.js) , 29 octets
Essayez-le en ligne! Remarque: la pile déborde pour des entrées plus importantes.
la source