Heute, während ich das schreibe, ist der 31. März. In den USA ist dies 3/31
. Ich habe mit 331
einer Zahl gespielt, um eine Herausforderung zu finden, und festgestellt, dass ihre Reste (modulo kleine Zahlen) palindrom sind. 331%2=1, 331%3=1, 331%4=3, 331%5=1, 331%6=1
( 11311
).
Ihre Herausforderung besteht darin, bei einer Ganzzahl n > 2
die ersten n
positiven Zahlen auszugeben, die bei Modulo-Aufnahme einen palindromischen Rest aufweisen [2,n]
.
Beispielsweise sollte für die Eingabe 7
die Ausgabe sein 1, 42, 43, 140, 182, 420, 421
. In der folgenden Tabelle wird erläutert, warum dies der Fall ist:
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
Eingang
Eine einzelne positive ganze Zahl n
mit n > 2
in jedem geeigneten Format .
Ausgabe
Das resultierende Array / die Liste der ersten n
palindromischen Reste, wie oben beschrieben. Auch hier in jedem geeigneten Format.
Regeln
- Nehmen Sie für an
n > 10
, dass die Rückstandsliste abgeflacht ist, bevor Sie prüfen, ob es sich um ein Palindrom handelt. Das heißt,[1, 10, 11]
ist palindromisch, ist es aber[1, 10, 1]
nicht. - Es ist entweder ein vollständiges Programm oder eine Funktion zulässig. Bei einer Funktion können Sie die Ausgabe zurückgeben, anstatt sie zu drucken.
- Fügen Sie nach Möglichkeit einen Link zu einer Online-Testumgebung hinzu, damit andere Benutzer Ihren Code ausprobieren können!
- Standardlücken sind verboten.
- Dies ist Codegolf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Byte) gewinnt.
Beispiele
[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]
quelle
n
Elemente.[1, 10, 11]
ist palindrom, ist aber[1, 10, 1]
nicht" scheint so mathematisch falsch.Antworten:
Haskell, 57 Bytes
Anwendungsbeispiel:
f 4
->[1,4,5,8]
. Probieren Sie es online!Der erste
=<<
ist im Funktionskontext und übersetzt in das Lambda\x -> reverse x == x
und der zweite=<<
ist im Listenkontext und entsprichtconcatMap
, dh map-and-flatten-one-list-level.quelle
05AB1E , 12 Bytes
Probieren Sie es online!
Erläuterung
quelle
Mathematica, 79 Bytes
quelle
JavaScript (ES6), 104 Byte
Demo
NB : Aufgrund der zahlreichen rekursiven Aufrufe stürzt dies für n> 8 in Firefox oder n> 10 in Chrome ab.
Code-Snippet anzeigen
quelle
Python 2,
9897 BytesProbieren Sie es online!
quelle
12
aufgrund der seltsamen Regel,[1, 10, 11]
die als Palindrom gilt, scheiternMATL , 19 Bytes
Vielen Dank an @AdmBorkBork für den Hinweis auf einen Fehler in einer früheren Version des jetzt korrigierten Codes
Probieren Sie es online!
Erläuterung
quelle
Scala,
908682 BytesErläuterung
Testfälle
Ergebnisse
Bearbeitungen
# 1 (90 => 86)
# 2 (86 => 82)
(2 to n).map(%i)
=>(2 to n)map(%i)
quelle
def f(n:Int)=
zu(n:Int)=>
, da sie definiert auch eine Funktion (aber ohne Namen). Das spart 4 Bytes!Gelee , 12 Bytes
Wie?
Probieren Sie es online!
quelle
CJam , 28 Bytes
Probieren Sie es online!
Erläuterung
quelle
PHP, 93 Bytes
Online Version 2 Loops Ausgabe als String
Erweitert
PHP 130 Bytes
Online Version 2 Loops
Erweitert
PHP, 139 Bytes mit 1 Schleife
Online Version 1 Loop
Laufen Sie mit
Erweitert
quelle
QBIC , 48 Bytes
Schlägt Mathematica! Probelauf:
Erläuterung:
quelle
Japt , 26 Bytes
Probieren Sie es online! Dauert einige Sekunden bei allen Eingaben, bitte haben Sie etwas Geduld.
Dies wäre erheblich kürzer (und schneller), wenn die ersten N-Zahlen mit einer bestimmten Bedingung ermittelt würden:
quelle