n
Schreiben Sie bei gegebener Eingabe einer positiven Ganzzahl ein Programm, das den folgenden Vorgang abschließt.
- Finden Sie die kleinste positive ganze Zahl größer als
n
das ist ein perfektes Quadrat und ist die Verkettung vonn
und einer anderen Zahl. Die Reihenfolge der Ziffern vonn
darf nicht geändert werden. Die Zahln
, mit der ein perfektes Quadrat erzeugt wird, kann aufgerufen werdenr_1
. - Wenn
r_1
es sich nicht um ein perfektes Quadrat handelt, wiederholen Sie den obigen Vorgang mitr_1
als neue Eingabe für den Vorgang. Wiederholen, bisr_k
ein perfektes Quadrat angegeben ists
. - Drucken Sie den Wert von
sqrt(s)
.
Die Eingabe kann in jedem Format erfolgen. Sie können davon ausgehen, dass dies n
eine positive Ganzzahl ist. Wenn r_k
eine führende Null (und r_k
≠ 0) hat, kann die Null ignoriert werden.
Testfälle
Hier sind einige Testfälle. Der Prozess demonstriert die obigen Schritte.
Input: 23
Process: 23, 2304, 4
Output: 2
Input: 10
Process: 10, 100, 0
Output: 0
Input: 1
Process: 1, 16, 6, 64, 4
Output: 2
Input: 5
Process: 5, 529, 29, 2916, 16
Output: 4
Input: 145
Process: 145, 145161, 161, 16129, 29, 2916, 16
Output: 4
Input: 1337
Process: 1337, 13373649, 3649, 36493681, 3681, 368102596, 2596, 25969216, 9216
Output: 96
Das ist Code Golf. Es gelten Standardregeln. Die kürzeste Antwort (in Bytes) gewinnt.
while x**.5%1:
vielleicht?Python,
200198178 Bytesquelle
math.sqrt
zum
.Brachylog , 26 Bytes
Probieren Sie es online aus!
Der letzte Testfall wurde in der TIO-Verbindung weggelassen, da die Ausführung allein mehr als eine Minute dauert. Ich habe es auf meinem Laptop ausgeführt und das richtige Ergebnis wurde in nicht mehr als zwei Stunden erzielt.
Das vorletzte
ℕ
ist erforderlich, wenn die anfängliche Eingabe bereits ein perfektes Quadrat ist. Das erste perfekte Quadrat, das es als Präfix hat, ist also selbst und!
ist erforderlich, um sicherzustellen, dass das Zurückverfolgen iteriert, anstatt ein größeres verkettetes Quadrat zu finden. aber ich weiß nicht wirklich warum≜
das notwendig ist, ich weiß nur, dass 5 ohne sie eine falsche Antwort liefert.quelle
∧
s tatsächlich kürzer als die Verwendung eines Sandwichs.)Perl 6 , 101 Bytes
quelle
ES7, 116 Bytes
Ja, ich könnte wahrscheinlich ein Byte mit verwenden
eval
.quelle