我的指数潜力是多少?


14

我们将正整数MN指数势定义为M N的前缀,即完美N幂。

的整数的前缀是所有与第一个,在基座10例如解释为数字开始数字的连续子序列,的前缀27442272742744

如果存在整数K使得K N = P,则前缀P是完美的N次方。例如,81是理想的4幂,因为3 4 = 81


给定两个严格的正整数中号Ñ,计算Ñ的-exponential电位中号根据上述定义。

例如,2的-exponential电位133,因为13 2169,和116169都是完美的正方形。

测试用例

自然地,输出几乎总是很小的,因为幂是...很好...指数增长的函数并具有多个完善的幂前缀是很少见的。

M, N     -> Output

8499, 2  -> 1
4,    10 -> 2
5,    9  -> 2
6,    9  -> 2
13,   2  -> 3

你好,(4,10)的输出是2而不是1?因为4的幂10是1048576,所以1是完美的幂,但不是10
Ali ISSA

@AliISSA嗨,该输出4, 102,因为1是一个完美的10-功率和1048576也是一个完美的10功率(而10104104810485104857都没有)。因此,有2名有效的前缀,所以输出是2
Xcoder先生

Answers:


10

Brachylog,12个字节

{^a₀.&b~b^}ᶜ

在线尝试!

说明

{^a₀.&b~b^}ᶜ
{         }ᶜ  Count the number of ways the following can succeed:
  a₀            A prefix of
 ^                the first {input} to the power of the second {input}
    .&          produces the same output with the same input as
       ~b         any number
         ^        to the power of
      b           all inputs but the first (i.e. the second input)

6

果冻,10字节

*DḌƤÆE%Ḅċ0

在线尝试!

怎么运行的

*DḌƤÆE%Ḅċ0  Main link. Left argument: m. Right argument: n.

*           Compute m**n.
 D          Generate its decimal digits.
  ḌƤ        Convert prefixes back to integers.
    ÆE      Get the exponents of each prefix's prime factorization.
      %     Take all exponents modulo n.
            For a perfect n-th power, all moduli will be 0.
       Ḅ    Convert from binary to integer, mapping (only) arrays of 0's to 0.
        ċ0  Count the zeroes.

3

Haskell,56个字节

0%n=0
x%n=sum[1|t<-[1..x],t^n==x]+div x 10%n
m#n=(m^n)%n

在线尝试!

通过重复算术地提取前缀\x->div x 10。我试着最后一点无点表达,但是没有找到一个简短的表达。






1

Perl 6,40个字节

{1+(^$^m X**$^n).grep({$m**$n~~/^$^p/})}

在线尝试!


如果您分配一个Callable的&foo变量,你可以调用它,你会子程序foo( 'bar' )foo 'bar'没有必要列入&。我的意思是您没有这样写&say(&f(|$_))((say在任何方面都不特殊))
Brad Gilbert b2gills

@ BradGilbertb2gills我只使用Perl 6进行代码高尔夫,仍然有很多东西要学习,因此感谢您的技巧。
nwellnhof

0

果冻,14字节

*DḌƤ*İ}ær⁵%1¬S

在线尝试!或查看测试套件

怎么运行的

*DḌƤ*İ}ær⁵%1¬S - Main link. Arguments: n, m (integers)  e.g. 13, 2
*              - Power. Raise x to the power y               169
 D             - Convert to a list of digits                 [1 6 9]
   Ƥ           - Convert each Ƥrefix
  Ḍ            - Back to an integer                          [1 16 169]
     İ         - Calculate the İnverse of
      }        - The right argument                          0.5
    *          - Raise each element to that power            [1 4 13]
       ær⁵     - Round each to 10 ** -10                     [1 4 13]
               - to remove precision errors
          %1   - Take the decimal part of each               [0 0 0]
            ¬  - Logical NOT each                            [1 1 1]
             S - Sum                                         3




0

Kotlin,89位元组

m,n->1+(1..m-1).count{"${Math.pow(m+0.0,n)}".startsWith("${Math.pow(it+0.0,n).toInt()}")}

在线尝试!

在测试用例中,将n作为双精度值(2.0、10.0、9.0)传递给我,这样我在调用Math.pow()时就不必转换为double值。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.