En arithmétique, un nombre n-lisse , où n est un nombre premier donné, est défini mathématiquement comme un entier positif qui n'a pas de facteurs premiers supérieurs à n. Par exemple, 42 est 7-lisse parce que tous ses facteurs premiers sont inférieurs ou égaux à 7, mais 44 n'est pas 7-lisse car il a également 11 comme facteur premier.
Définissez un nombre assez lisse comme un nombre sans facteur premier supérieur à sa propre racine carrée. Ainsi, la liste des nombres assez lisses peut être formulée comme suit:
- (MODIFIÉ!) 1 est un nombre assez lisse, en raison de son absence totale de facteurs premiers. (Notez que dans la version originale de cette question, 1 a été exclu par erreur de la liste, donc si vous l'excluez de vos sorties, vous ne serez pas marqué comme mauvais.)
- Entre 4 (= 2 2 ) et 8, les nombres assez lisses sont à 2 lisses, ce qui signifie qu'ils ont 2 comme seul facteur premier.
- Entre 9 (= 3 2 ) et 24, les nombres assez lisses sont 3-lisses, et peuvent avoir 2 et 3 dans leurs factorisations principales.
- Entre 25 (= 5 2 ) et 48, les nombres assez lisses sont 5-lisses et peuvent avoir 2s, 3s et 5s dans leurs factorisations principales.
- Et ainsi de suite, en améliorant les critères à chaque fois que le carré du prochain nombre premier est atteint.
La liste des nombres assez lisses est fixe et commence comme suit: 1, 4, 8, 9, 12, 16, 18, 24, 25, ...
Votre défi est d'écrire du code qui produira tous les nombres assez fluides jusqu'à 10 000 inclus (= 100 2 ). Il doit y avoir au moins un séparateur (peu importe le type - espace, virgule, nouvelle ligne, quoi que ce soit) entre chaque numéro de la liste et le suivant, mais le caractère utilisé n'a aucune importance.
Comme d'habitude, le nombre d'octets le plus bas l'emporte - évidemment, la simple sortie de la liste ne vous sera pas trop bénéfique ici. Bonne chance!
1
)Réponses:
En fait, 11 octets
Essayez-le en ligne!
Ne comprend pas 1.
Explication:
la source
Gelée , 12 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
Brachylog ,
2119 octets1 octet grâce à Fatalize, pour l'inspiration d'un autre 1 octet.
Essayez-le en ligne!
Prend environ 6 secondes ici.
Solution précédente de 21 octets
Essayez-le en ligne!
Prend environ 6 secondes ici.
la source
100^:4reP$pot^<=P@w\
est un octet plus court, mais moins élégant.Haskell, 53 octets
Je n'ai pas le temps de jouer au golf maintenant, mais je veux illustrer une méthode pour tester si
n
est assez lisse: multiplier les nombres de1
àsqrt(n)
(c.- à -d. Calculer une factorielle), augmenter le produit à une puissance élevée et vérifier si le résultat est un multiple den
.Remplacez par
r=[2..10^4]
si1
ne doit pas être sorti.la source
8
exige).Pyth ,
1615 octets1 octet grâce à Jakube.
Essayez-le en ligne!
la source
*dd
par cette fonction?05AB1E,
161413 octetsExplication
Essayez-le en ligne
la source
4°
est court pour 10000.Matlab,
5857565248 octetsPour chaque nombre, il vérifie si tous les facteurs au carré ne sont pas supérieurs au nombre lui-même. Si oui, affiche ce numéro.
Merci à @Luis Mendo d' avoir joué à cette approche
Une autre approche (50 octets):
Pour chaque nombre, calcule si son facteur premier maximal au carré est inférieur au nombre lui-même. L'utilise ensuite pour l'indexation.
la source
for k=4:1e4,if factor(k).^2<=k,disp(k);end;end
SQF ,
252227220Format de script standard:
Incluez le pré-processeur dans la chaîne de compilation lors de l'appel, par exemple:
execVM "FILENAME.sqf"
call compile preprocessFile "FILENAME.sqf"
Cela écrit dans le journal System Chat, qui est la chose la plus proche que SQF doit stdout
la source
C, 113 octets
Ideone it!
la source
Pyke,
131211 octetsEssayez-le ici!
(Le lien ne monte que jusqu'à 10 ^ 3 car 10 ^ 4 fois)
la source
J, 20 octets
Résultat:
Essayez-le en ligne ici.
la source
Python 2, 90 octets
Ideone it!
la source
R, 97 octets
non golfé
la source
Pyth, 12 octets
Ne comprend pas 1.
la source