Un nombre surabondant est un entier n qui définit une nouvelle borne supérieure pour son rapport avec la fonction de somme des diviseurs σ. En d'autres termes, n est surabondant si et seulement si, pour tous les entiers positifs x inférieurs à n :
Pour quelques-unes des valeurs:
n σ(n) σ(n)/n superabundant
1 1 1.0000 yes
2 3 1.5000 yes
3 4 1.3333 no
4 7 1.7500 yes
5 6 1.2000 no
6 12 2.0000 yes
7 8 1.1429 no
8 15 1.8750 no
9 13 1.4444 no
Une liste plus longue de ceux-ci (pour les cas de test) peut être consultée sur OEIS A004394 .
Un cas de test négatif fortement recommandé (si votre interprète peut le gérer) est 360360, car il est lié au dernier numéro surabondant.
Défi
Votre programme doit prendre un seul entier positif et produire une valeur true ou falsey indiquant si cet entier est surabondant.
Comme il s'agit de code-golf , la réponse la plus courte en octets l'emporte.
Æs÷$ÐṀ=
pour 7 octets. Je ne me suis pas rendu compteÐṀ
rangifié, c'est utile de savoir.360360
. En fait, c'était ma version initiale360360
?360360
est le premier nombre pour lequel il échouerait (je pense), car c'est le premier nombre à égaler un résultat qui s'est produit auparavant. (et notre résultat serait[0, 1]
)Haskell , 73 octets
-1 octet merci à M. Xcoder. -7 octets grâce à Laikoni.
Essayez-le en ligne!
Le système de caractères de Haskell n'est pas très golfique ...
la source
Haskell ,
646361 octets-1 octet merci à M. Xcoder .
-2 octets grâce à Lynn .
Essayez-le en ligne!
la source
Octave , 41 octets
Essayez-le en ligne!
Explication
la source
J , 35 octets
Merci à Mr.Xcoder pour avoir trouvé le problème et à cole pour le corriger!
Essayez-le en ligne!
la source
360360
(voir le défi pour plus de détails: un cas de test négatif fortement recommandé est 360360, car il est lié au dernier nombre surabondant. ).#.~
(honnêtement, toute la fonction de somme des diviseurs est vraiment sympa). Ce qui n'allait pas, c'est que, bien que l'idée de faire{:=>./
soit intelligente, elle ne satisfait pas la partie «supérieure à» de la question.(1#.{:(]*0=|~)])\
. Quelque chose ne va pas, cependant, vous avez peut-être des idées?(1#.]*0=|~)1+i.
c'est un crochet et ne rentre pas aussi facilement en place cependant :)Julia 0,6 , 52 octets
Essayez-le en ligne!
Cette solution utilise des nombres rationnels pour garantir l'exactitude en cas d'égalité. (Le test du 360360 a pris près de 10 minutes.)
En virgule flottante, 2 octets peuvent être enregistrés avec la division de gauche:
la source
Pyth , 14 octets
( FryAmTheEggman a enregistré 1 octet)
Essayez-le ici! ou voir plus de cas de test.
Juste ma soumission Pyth obligatoire qui est très probablement jouable au golf.
Comment?
la source
05AB1E , 10 octets
Essayez-le en ligne! ou comme suite de tests
Explication
la source
360360
(voir le défi pour plus de détails: un cas de test négatif fortement recommandé est 360360, car il est lié au dernier nombre surabondant. ).Python 3 , 77 octets
-1 octet grâce à Rod. -3 octets grâce à Dennis.
Essayez-le en ligne!
la source
R utilisant
numbers
, 59 octetsla source
Mathematica,
5350 octetsFonction pure. Prend un entier comme entrée et retourne
True
ouFalse
comme sortie.la source
Tr@Divisors@#
fonctionne?Japt v2.0a0,
1216 octetsLe cerveau privé de sommeil ne semble pas pouvoir encore améliorer cela!
Retourne
1
pour véridique ou0
pour falsey.Essayez-le
Sacrifié 4 octets à gérer
360360
.Explication
U
.Æ Ã
crée un tableau d'entiers de0
àU-1
et passe chacun par la fonction suivante en tant queX
.â
obtient les diviseurs deU
.÷U
divise chacun de ceux-ci parU
.x
résume les résultats.Xâ
obtient les diviseurs deX
.÷X
divise chacun de ceux-ci parX
.x
résume les résultats.>
vérifie si le premier résultat est supérieur au second.×
réduit le tableau résultant de booléens par multiplcation.la source
360360
ou d'autres tels entiers: Un cas de test négatif fortement recommandé (si votre interprète peut le gérer) est 360360, car il est lié au dernier nombre surabondantAPL + WIN, 37 octets
Invite à saisir l'écran.
la source
C (gcc), 99 octets
Essayez-le en ligne!
C, 108 octets
Essayez-le en ligne!
la source
s
faut-il retourner un flotteur?s(n)/n
avecs(i)/i
.Swift ,
120118 bytesIl faut un certain temps (environ 6 secondes sur TIO) pour compiler en raison des déclarations de type implicites dans Swift.
Essayez-le en ligne!
la source
Gelée , 12 octets
Essayez-le en ligne! ou Trouvez tous les nombres surabondants inférieurs à 1000.
parce que je déteste les virgules flottantes.
la source
Funky , 79 octets
Expliqué
Cela définit d'abord la fonction
d
qui est laσ
fonction, et ceci est la version golfée deNous pouvons mettre i à 0, car
i*n%0
sera toujours égal0*...
, donc0
.La moitié suivante définit la fonction
f
, qui est la fonction Superabandunce, et ce n'est que la forme jouée au golf deEt cela vérifie simplement, comme le suggère la spécification de défi, que tous les entiers de 1 à n-1 ont un
d(n)/n
de moins que l'entrée.Essayez-le en ligne!
la source
APL (Dyalog) , 33 octets
Essayez-le en ligne!
la source
Coque , 9 octets
Essayez-le en ligne! Trop lent pour le cas de test 360360.
Explication
la source
£ü¤<§ṁ/ḊN
. Création de la liste complète des nombres surabondantsPerl 5, 84 octets
a besoin
-E
(gratuit)une mise en œuvre simple de la spécification, golfé
la source
APL (NARS), 61 caractères, 122 octets
11π est la fonction somme des facteurs
la source