Aujourd'hui, alors que j'écris ceci, c'est le 31 mars. Aux États-Unis, c'est le cas 3/31
. Je jouais avec 331
un nombre pour trouver un défi et j'ai trouvé que ses résidus (petits nombres modulo) étaient palindromiques. 331%2=1, 331%3=1, 331%4=3, 331%5=1, 331%6=1
( 11311
).
Votre défi ici est, quand on vous donne un entier n > 2
, de sortir les premiers n
nombres positifs qui ont des résidus palindromiques lorsqu'ils sont pris modulo [2,n]
.
Par exemple, pour l'entrée 7
, la sortie doit être 1, 42, 43, 140, 182, 420, 421
. Voici le tableau expliquant pourquoi c'est le cas:
mod
num | 2 3 4 5 6 7
-----------------
1 | 1 1 1 1 1 1
42 | 0 0 2 2 0 0
43 | 1 1 3 3 1 1
140 | 0 2 0 0 2 0
182 | 0 2 2 2 2 0
420 | 0 0 0 0 0 0
421 | 1 1 1 1 1 1
Contribution
Un entier positif unique n
avec n > 2
dans un format pratique .
Sortie
La liste / liste résultante des premiers n
résidus palindromiques, comme indiqué ci-dessus. Encore une fois, dans n'importe quel format approprié.
Règles
- Pour
n > 10
, supposez que la liste des résidus soit aplatie avant de vérifier s'il s'agit d'un palindrome. Autrement dit,[1, 10, 11]
est palindromique, mais[1, 10, 1]
ne l'est pas. - Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Si possible, veuillez inclure un lien vers un environnement de test en ligne afin que d'autres personnes puissent essayer votre code!
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
Exemples
[input]
[output]
3
[1, 6, 7]
4
[1, 4, 5, 8]
5
[1, 50, 60, 61, 110]
6
[1, 30, 31, 60, 61, 90]
7
[1, 42, 43, 140, 182, 420, 421]
8
[1, 168, 169, 336, 337, 504, 505, 672]
9
[1, 2520, 2521, 5040, 5041, 7560, 7561, 10080, 10081]
10
[1, 280, 281, 560, 1611, 1890, 1891, 2170, 2171, 2241]
11
[1, 22682, 27720, 27721, 50402, 55440, 55441, 78122, 83160, 83161, 105842]
la source
n
éléments.[1, 10, 11]
est palindromique, mais[1, 10, 1]
ne l'est pas" semble si mathématiquement erroné.Réponses:
Haskell, 57 octets
Exemple d'utilisation:
f 4
->[1,4,5,8]
. Essayez-le en ligne!Le premier
=<<
est dans le contexte de la fonction et se traduit par le lambda\x -> reverse x == x
et le second=<<
est dans le contexte de la liste et équivalentconcatMap
, c'est-à-dire au niveau de la carte et de l'aplatissement d'une seule liste.la source
05AB1E , 12 octets
Essayez-le en ligne!
Explication
la source
Mathematica, 79 octets
la source
JavaScript (ES6), 104 octets
Démo
NB : En raison des nombreux appels récursifs, cela se bloquera pour n> 8 sur Firefox ou n> 10 sur Chrome.
Afficher l'extrait de code
la source
Python 2,
9897 octetsEssayez-le en ligne!
la source
12
raison de l'étrange règle qui[1, 10, 11]
est considérée comme un palindromeMATL , 19 octets
Merci à @AdmBorkBork d'avoir signalé une erreur dans une version antérieure du code, maintenant corrigée
Essayez-le en ligne!
Explication
la source
Scala,
908682 octetsExplication
Cas de test
Résultats
Modifications
# 1 (90 => 86)
# 2 (86 => 82)
(2 to n).map(%i)
=>(2 to n)map(%i)
la source
def f(n:Int)=
à(n:Int)=>
, car il définit également une fonction (mais sans nom). Il économise 4 octets!Gelée , 12 octets
Comment?
Essayez-le en ligne!
la source
CJam , 28 octets
Essayez-le en ligne!
Explication
la source
PHP, 93 octets
Sortie en ligne de la boucle 2 en tant que chaîne
Étendu
PHP 130 octets
Boucles de la version 2 en ligne
Étendu
PHP, 139 octets avec 1 boucle
Boucle de la version 1 en ligne
Courir avec
Étendu
la source
QBIC , 48 octets
Beats Mathematica! Exemple d'exécution:
Explication:
la source
Japt , 26 octets
Essayez-le en ligne! Prend quelques secondes sur toutes les entrées, alors soyez patient s'il vous plaît.
Ce serait considérablement plus court (et plus rapide) s'il y avait une fonction intégrée pour obtenir les premiers nombres N satisfaisant à une condition:
la source