私の指数関数的ポテンシャルは何ですか?


14

正の整数MN指数ポテンシャルを、完全なN乗であるM Nのプレフィックスの数として定義します。

整数のプレフィックスは、例えばベース10に数値として解釈最初のもの、で始まる数字の全ての隣接サブシーケンスである、のプレフィックス2744がある227274および2744

K N = Pのような整数Kが存在する場合、接頭辞Pは完全なN乗です。たとえば、3 4 = 81であるため、81は完全な4乗です。


2つの厳密に正の整数MおよびNが与えられた場合、上記の定義に従ってMのN指数ポテンシャルを計算します。

例えば、2の-exponential電位13は、ある3ので、13 2169、及び116及び169は、全て完全正方形です。

テストケース

当然、出力はほとんどの場合非常に小さくなります。なぜなら、パワーは...まあ...指数関数的に成長する関数であり、複数の完全なパワーのプレフィックスを持つことはかなりまれだからです。

M, N     -> Output

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

こんにちは、:(4、10)の出力は1ではなく2です。4電源10は1048576ですので、1は完全なパワーではなく、10
アリISSA

@AliISSAこんにちは、の出力が4, 10ある2ため、1は完全な10電力であり、1048576は、(ながらも完全な10-電力である10104104810485104857ではありません)。したがって、2つの有効なプレフィックスがあるため、出力は2です。
Mr. Xcoder

回答:


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/})}

オンラインでお試しください!


あなたが呼び出し可能に割り当てた場合&foo、変数あなたはサブルーチンと同じようにそれを呼び出すことができますfoo( 'bar' )foo 'bar'インクルードする必要はありません&。私はあなたがそれを書いていないことを意味します&say(&f(|$_))say決して特別ではありません)
ブラッドギルバート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






弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.