Pour un entier positifn
avec la factorisation en nombres premiers n = p1^e1 * p2^e2 * ... pk^ek
où p1,...,pk
sont des nombres premiers et e1,...,ek
sont des entiers positifs, nous pouvons définir deux fonctions:
Ω(n) = e1+e2+...+ek
le nombre de diviseurs premiers (compté avec la multiplicité) ( A001222 )ω(n) = k
le nombre de diviseurs premiers distincts. ( A001221 )
Avec ces deux fonctions, nous définissons l' excédent e(n) = Ω(n) - ω(n)
( A046660 ). Cela peut être considéré comme une mesure de la proximité d'un nombre sans carré.
Défi
Pour un n
retour entier positif donné e(n)
.
Exemples
Car n = 12 = 2^2 * 3
nous avons Ω(12) = 2+1
et ω(12) = 2
et donc e(12) = Ω(12) - ω(12) = 1
. Pour tout numéro sans n
carré que nous avons de manière évidente e(n) = 0
. Les premiers termes sont
1 0
2 0
3 0
4 1
5 0
6 0
7 0
8 2
9 1
10 0
11 0
12 1
13 0
14 0
15 0
^
c'est le pouvoirRéponses:
MATL ,
75 octetsEssayez-le en ligne! Ou vérifiez tous les cas de test .
Explication
la source
factor
fonctionnait MATL, vraiment cool =)YF
(dans la version 7 octets du code) ouYf
(5 octets)? Ce dernier est comme dans MATLABBrachylog , 11 octets
Essayez-le en ligne!
Explication
la source
Mathematica, 23 octets
Très ennuyeux.
FactorInteger
prend déjà 13 octets, et je ne vois pas grand-chose qui puisse être fait avec les 10 autres.la source
Gelée , 5 octets
Essayez-le en ligne!
Vérifiez tous les cas de test.
Réponse de Port de Luis Mendo en MATL .
la source
ÆF’SṪ
aurait fonctionné je pense¬
m'a confondu. Je ne le savais pas vectorisé05AB1E , 6 octets
Explication
Essayez-le en ligne!
la source
J,
1110 octets1 octet enregistré grâce à Jonah .
la source
1#.1-~:@q:
pour 10 octets. belle idée en utilisant~:
btw.Pyth, 7 octets
Essayez-le en ligne.
la source
C, 74 octets
Ideone it!
la source
Python 2,
5756 octetsMerci à @JonathanAllan d'avoir joué au golf sur 1 octet!
Testez-le sur Ideone .
la source
n/k%k<1
Haskell, 65 octets
la source
05AB1E , 4 octets
Port de la réponse MATL de @LuisMendo .
Essayez-le en ligne ou vérifiez les 15 premiers cas de test .
Explication:
la source
Python 2,
100999896 octetsLa plupart du code est repris par une version golfée de cette réponse SO , qui stocke les facteurs premiers de l'entrée dans
f
. Ensuite, nous utilisons simplement la manipulation d'ensemble pour calculer les facteurs excédentaires.Merci à Leaky Nun d'avoir économisé
13 octets!la source
Brachylog , 11 octets
Essayez-le en ligne!
Vérifiez tous les cas de test. (Le wrapper est plus long que la fonction ...)
la source
SILOS , 113 octets
Essayez-le en ligne!
Un port de ma réponse en C .
la source
Javascript (ES6),
535146 octets5 octets enregistrés grâce à Neil
Exemple:
la source
r
récursive:f=(n,i=2)=>i<n?n%i?f(n,i+1):f(n/=i,i)+!(n%i):0
.Bash, 77 octets
Programme complet, avec entrée
$1
et sortie sur sortie standard.Nous allons
IFS
commencer par une nouvelle ligne, de sorte que l'extension"${f[*]}"
soit séparée par une nouvelle ligne. Nous utilisons la substitution arithmétique pour imprimer la différence entre le nombre de mots dans la factorisation avec le résultat du filtrageuniq
. Le nombre lui-même est imprimé en tant que préfixe parfactor
, mais il est également présent après le filtrage, il tombe donc dans la soustraction.la source
Python, (avec sympy) 66 octets
sympy.factorint
renvoie un dictionnaire avec des facteurs comme clés et leurs multiplicités comme valeurs, donc la somme des valeurs estΩ(n)
et le nombre de valeurs estω(n)
, donc la somme des valeurs décrémentées est ce que nous voulons.la source
CJam, 11 octets
Essayez-le en ligne!
Explication
la source
C, 158
Au début, il y a l'instruction goto ... même si elle est plus longue que la vôtre, elle est plus lisible et juste [si je ne considère pas n trop grand ...] une langue qui a 10000 fonctions de bibliothèque est pire qu'une langue qu'avec peu, 20 ou 30 fonctions de bibliothèque peuvent faire mieux [parce qu'on ne se souvient pas de toutes ces fonctions]
la source
GNU sed + coreutils, 55 octets
(dont +1 pour le
-r
drapeau)Entrée en décimal, sur stdin; sortie en unaire, sur sortie standard.
Explication
la source
APL (NARS) 35 caractères, 70 octets
la fonction π trouve la factorisation en nombre premier de son argument; il y a peu de choses à dire, cela semble clair, mais pour moi, il y a plus d'opérations (de factorisation) que le minimum ... la plage de caractères de comptage est hors des langues de golf car cela semble trop compter, mais moins que les langues de golf ... tester:
la source