Nous définirons le potentiel N- exponentiel d'un entier positif M comme le nombre de préfixes de M N qui sont des N- puissances parfaites .
Les préfixes d'un entier sont toutes les sous-séquences contiguës de chiffres qui commencent par le premier, interprétées comme des nombres en base 10. Par exemple, les préfixes de 2744 sont 2 , 27 , 274 et 2744 .
Un préfixe P est un parfait N - Power s'il existe un entier K tel que K N = P . Par exemple, 81 est une puissance parfaite de 4 car 3 4 = 81 .
Étant donné deux entiers strictement positifs M et N , calculez le potentiel N- exponentiel de M selon la définition ci-dessus.
Par exemple, le potentiel 2- exponentiel de 13 est 3 car 13 2 est 169 , et 1 , 16 et 169 sont tous des carrés parfaits.
Cas de test
Naturellement, les sorties seront presque toujours assez petites car les puissances sont ... eh bien ... des fonctions en croissance exponentielle et avoir plusieurs préfixes de puissance parfaite est plutôt rare.
M, N -> Output
8499, 2 -> 1
4, 10 -> 2
5, 9 -> 2
6, 9 -> 2
13, 2 -> 3
4, 10
est 2 , car 1 est une puissance 10 parfaite et 1048576 est également une puissance 10 parfaite (alors que 10 , 104 , 1048 , 10485 et 104857 ne le sont pas). Ainsi, il y a 2 préfixes valides, donc la sortie est 2.Réponses:
Brachylog , 12 octets
Essayez-le en ligne!
Explication
la source
Gelée , 10 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
Haskell , 56 octets
Essayez-le en ligne!
Extrait les préfixes de manière arithmétique par répétition
\x->div x 10
. J'ai essayé d'exprimer la dernière ligne sans point mais je n'ai pas trouvé d'expression plus courte.la source
05AB1E , 8 octets
Essayez-le en ligne!
Utilise l'algorithme Jelly de 10 octets de Dennis. Les entrées sont dans l'ordre inverse.
la source
Perl 5 , 38 octets
Essayez-le en ligne!
la source
Haskell, 73 octets
Essayez-le en ligne!
la source
Java (OpenJDK 9) , 105 octets
Essayez-le en ligne!
Crédits
la source
.startsWith(""+(int)Math.pow(k,n))
peut être.matches((int)Math.pow(k,n)+".*")
pour -1 octet.Perl 6 , 40 octets
Essayez-le en ligne!
la source
&foo
variable, vous pouvez l'appeler comme vous le feriez pour un sous-programmefoo( 'bar' )
oufoo 'bar'
pas besoin de l'inclure&
. Je veux dire que vous ne l'avez pas écrit comme&say(&f(|$_))
(cesay
n'est pas spécial du tout)Gelée , 14 octets
Essayez-le en ligne! ou voir la suite de tests
Comment ça fonctionne
la source
APL (Dyalog) , 31 octets
Essayez-le en ligne!
la source
Haskell , 83 octets
Essayez-le en ligne!
la source
Rubis , 60 octets
une grande partie consiste à traiter les erreurs en virgule flottante
Essayez-le en ligne!
la source
Kotlin , 89 octets
Essayez-le en ligne!
Dans les cas de test, passé en n en tant que valeurs doubles (2.0, 10.0, 9.0) afin que je n'ai pas à convertir en double lors de l'appel de Math.pow ().
la source
Python 2 ,
837170 octetsEssayez-le en ligne!
Thx pour 1 de ovs.
la source
math.round()
lolGelée , 9 octets
Essayez-le en ligne!
la source