Étant donné un entier n >= 2
, affichez le plus grand exposant de sa factorisation principale. Il s'agit de la séquence OEIS A051903 .
Exemple
Soit n = 144
. Sa factorisation principale est 2^4 * 3^2
. Le plus grand exposant est 4
.
Cas de test
2 -> 1
3 -> 1
4 -> 2
5 -> 1
6 -> 1
7 -> 1
8 -> 3
9 -> 2
10 -> 1
11 -> 1
12 -> 2
144 -> 4
200 -> 3
500 -> 3
1024 -> 10
3257832488 -> 3
Réponses:
05AB1E , 2 octets
Essayez-le en ligne!
Comment?
la source
Python 2 ,
625756 octetsEssayez-le en ligne!
la source
f=lambda n,k=0:max(k%n-n%(k/n+2)**(k%n)*n,k<n**2and f(n,k+1))
Gelée , 3 octets
Essayez-le en ligne!
Cela fonctionne aussi dans M . Essayez-le en ligne!
la source
Haskell ,
6160504846 octets-2 octets grâce à xnor
Essayez-le en ligne!
45 octets avec une importation:
Essayez-le en ligne!
la source
0^
est mignon, mais il est plus court pour vérifier la condition en tant que booléen.Ohm v2 , 2 octets
Essayez-le en ligne!
Explication?
Non.
la source
Python 2 , 78 octets
Essayez-le en ligne!
-5 grâce aux ovs .
Cette réponse ne fait pas de vérifications principales. Au lieu de cela, il tire parti du fait que l'exposant le plus élevé d'un facteur premier sera supérieur ou égal à l'exposant de tout autre facteur dans toute factorisation d'un nombre.
la source
Japt
-h
,97 octetsEssayez-le
la source
ü
crée des sous-tableaux de valeurs égales. Il fait également trier par première valeur , mais ce n'est pas pertinent en l' espèce.Mathematica, 27 octets
Essayez-le en ligne!
la source
Max@@Last/@FactorInteger@#&
. Malheureusement, cela n'économise aucun octet.MATL , 4 octets
Essayez-le en ligne!
la source
Brachylog , 5 octets
Essayez-le en ligne!
Explication
la source
Husk , 5 octets
Essayez-le en ligne!
p
- Obtient les facteurs premiers.g
- Regroupe les valeurs adjacentes.mL
- Obtient les longueurs de chaque groupe.▲
- Maximum.la source
APL (Dyalog) , 19 octets
Essayez-le en ligne!
Comment?
2pco⎕
- Tableau 2D de facteurs premiers et d'exposants1↓
- laisser tomber les facteurs⌈/
- maximumla source
Javascript 54 octets
* en supposant une pile infinie (comme dans les défis de code-golf)
la source
PARI / GP, 24 octets
Si je ne compte pas la
n->
partie, c'est 21 octets.la source
Octave , 25 octets
Essayez-le en ligne!
Explication
factor
produit le tableau d'exposants premiers (éventuellement répétés) La deuxième sortie demode
donne le nombre de fois que le mode (c'est-à-dire l'entrée la plus répétée) apparaît.la source
Pyth , 7 octets
Essayez-le ici.
la source
eS/LPQP
(7 octets),eSlM.gkP
(8 octets).Python 2 ,
9084 octetsEssayez-le en ligne!
la source
Gaia , 4 octets
Essayez-le en ligne!
ḋ
- Calcule la factorisation principale en paires [prime, exposant] .⌠
- Cartographie et collecte du résultat avec la valeur maximale.)
- Dernier élément (exposant).)
- Dernier élément (exposant maximal)Gaia , 4 octets
Essayez-le en ligne!
ḋ
- Calcule la factorisation principale en paires [prime, exposant] .)¦
- Carte avec le dernier élément (exposant).⌉
- Obtient l'élément maximum.la source
MY , 4 octets
Essayez-le en ligne!
Explication?
la source
Octave : 30 octets
a=factor(x)
renvoie un vecteur contenant les facteurs premiers dex
. Il s'agit d'un vecteur trié par ordre croissant où la multiplication de tous les nombres dans lesfactor(x)
rendementsx
telle sorte que chaque nombre dans le vecteur est premier.histc(...,a)
calcule un histogramme sur le vecteur de facteur premier où les cases sont les facteurs premiers. L'histogramme compte le nombre de fois où nous avons vu chaque nombre premier, donnant ainsi l'exposant de chaque nombre premier. Nous pouvons tricher ici un peu parce que même sifactor(x)
nous retournerons des nombres ou des bacs en double, un seul des bacs capturera le nombre total de fois où nous verrons un nombre premier.max(...)
renvoie donc le plus grand exposant.Essayez-le en ligne!
la source
Alice , 17 octets
Essayez-le en ligne!
Explication
Ceci est juste un cadre pour les programmes arithmétiques simples avec des E / S décimales. C'est
...
le programme réel, qui a déjà l'entrée sur la pile et laisse la sortie au-dessus de la pile.Alice a en fait des fonctions intégrées pour obtenir la factorisation première d'un entier (même avec des paires exposant-prime), mais la plus courte que j'ai trouvée en utilisant celles-ci est 10 octets de plus que cela.
Au lieu de cela, l'idée est que nous divisons à plusieurs reprises une copie de chaque facteur premier distinct de l'entrée, jusqu'à ce que nous atteignions 1 . Le nombre d'étapes que cela prend est égal au plus grand exposant premier. Nous allons abuser de la tête de bande comme variable de compteur.
la source
Julia,
605240 octets-12 + correction grâce à Steadybox
la source
print()
. De plus, je n'ai pas pu faire fonctionner le code sur TIO tel quel, je suppose qu'il fonctionne sur une autre version du langage qui n'est pas disponible là-bas? Cela fonctionne bien sur TIO:print(maximum(collect(values(factor(parse(BigInt,readline()))))))
print()
est nécessaire car la réponse doit être un programme complet (qui affiche la sortie) ou une fonction (qui renvoie la sortie). Sinon, votre solution est très bien. Il semble que vous pouvez économiser quelques octets (et éviter l'impression) de cette façon:f(x)=maximum(collect(values(factor(x))))
En fait , 4 octets
Essayez-le en ligne!
la source
Python 2 , 64 octets
-4 octets grâce à H.PWiz.
Essayez-le en ligne!
Réponse de Haskell de H.PWiz . Je ne partage cela que parce que je suis fier d'avoir pu comprendre ce morceau de code Haskell et le traduire. : P
la source
range(1,n)
ne marche pas?range(1, n)
produit tous les entiers dans [1, n).a
Axiome, 61 octets
C'est la première fois que je trouve qu'il est possible de définir la fonction sans utiliser de parenthèses (). Au lieu de "f (n) ==" "fn ==" un caractère de moins ...
la source
Raquette ,
8379 octetsEssayez-le en ligne!
(Je ne suis pas sûr qu'il y ait un consensus sur ce qui constitue une solution complète de Racket, donc je vais avec la convention Mathematica qu'une fonction pure compte.)
Comment ça marche
factorize
donne la factorisation sous forme de liste de paires:(factorize 108)
donne'((2 2) (3 3))
. Le deuxième élément d'une paire est donné parcadr
, un raccourci pour la composition decar
(tête de liste) aveccdr
(queue de liste).Je me sens idiot de faire
(cadr (argmax cadr list))
pour trouver le maximum des seconds éléments, maismax
ne fonctionne pas sur les listes:(max (map cadr list))
ne fait pas ce que nous voulons. Je ne suis pas un expert en raquette, donc il y a peut-être une meilleure façon standard de le faire.Raquette, 93 octets
Essayez-le en ligne!
Comment ça marche
Une version alternative qui n'importe pas
factorize
et fait tout à partir de zéro, plus ou moins. La fonction(p m d)
trouve la puissance la plus élevée ded
cette divisionm
, puis nous trouvons simplement la valeur la plus élevée de(p n d)
pourd
entre2
etn
. (Nous n'avons pas besoin de limiter cela aux nombres premiers, car il n'y aura pas de puissance composite qui fonctionne mieux que les puissances premières.)la source
max
solution standard est(apply max (map cadr list)
mais(cadr (argmax cadr list))
est malheureusement plus courte.J, 9 octets
Max de
<./
tous les exposants principaux_&q:
Essayez-le en ligne!
la source
APL (NARS), 15 caractères, 30 octets
tester:
commentaire:
la source