アーベル注文


17

いくつかの背景

数学では、グループは、タプル(あるG、•)Gがセットされ、•上の操作であるG任意の二つの要素になるようにX及びYにおけるGXyは、でもあるGは

いくつかのために、XYZにおけるG次のように、塩基性基公理です。

  • Gは•の下で閉じられます。つまり、Gのxy
  • 演算は連想的です。つまり、x •(yz)=(xy)• z
  • Gには恒等要素があります。つまり、すべてのx に対してxe = xとなるようにGにeが存在します
  • 演算は反転可能です。つまり、Gにabが存在ax = yおよびyb = xとなる

さて、それらはグループです。ここで、Abelianグループをグループ(G、•)として定義し、そのようにして•は可換演算です。つまり、xy = yxです。

最後の定義。グループの順序G、•)。G |は、セットGの要素数です。

仕事

アーベルの次数は整数nであるため、次数nのすべてのグループはアーベルです。アーベルの注文の順序は、OEISのA051532です。あなたの仕事は、整数nが与えられると、このシーケンスのn番目の項(1-indexed)を生成することです。何もオーバーフローしないように、最大​​整数までの入力をサポートする必要があります。

入力は、関数の引数、コマンドラインの引数、STDIN、または便利なものから取得できます。

出力は、関数から返されるか、STDOUTに出力されるか、便利なものであれば何でも可能です。STDERRには何も書き込まないでください。

スコアはバイト数で、最短の勝ちです。

シーケンスの最初の25項は次のとおりです。

1, 2, 3, 4, 5, 7, 9, 11, 13, 15, 17, 19, 23, 25, 29, 31, 33, 35, 37, 41, 43, 45, 47, 49, 51

回答:


6

CJam(35 32バイト)

0q~{{)_mF_z~2f>@::#@m*::%+1&}g}*

オンラインデモ

解剖

OEISの情報の一部を言い換えると、アーベルの順序は、キューブのない全能の順序です。そして、無能次数は、別の素数因子を法とするべきn素数因子p^k | nが一致しない1数です。

キューブフリーテストに合格すると、無能性テストは

  • 1別の素因数を法とする素因数はない
  • プライムの多重度が場合pkp^k等しくない必要があります1別の素因数を法。

ただし、2番目の条件は最初の条件を意味するため、

  • プライムの多重度が場合pkp^k等しくない必要があります1別の素因数を法。

のために「もう一つ」という言葉は不要であることp^a == 0 (mod p)に注意してくださいa > 0

0q~{       e# Loop n times starting from a value less than the first Abelian order
  {        e#   Find a number which doesn't satisfy the condition
    )_     e#     Increment and duplicate to test the condition on the copy
    mF     e#     Find prime factors with multiplicity
    _z~    e#     Duplicate and split into the primes and the multiplicities
    2f>    e#     Map the multiplicities to whether or not they're too high
    @::#   e#     Bring factors with multiplicities to top and expand to array of
           e#     maximal prime powers
    @m*::% e#     Cartesian product with the primes and map modulo, so for each
           e#     prime power p^k and prime q we have p^k % q.
    +      e#     Combine the "multiplicity too high" and the (p^k % q) values
    1&     e#     Check whether either contains a 1
  }g
}*

1
非常に徹底的で興味深い説明をありがとう!:)
ファックス

5

CJam、46 45バイト

0{{)_mf_e`_:e>3a>\{~\,:)f#}%@fff%e_1e=|}g}ri*

ここでテストしてください。

私はOEISページで与えられた条件を使用しています:

の素因数分解をnとします。次に、すべてのand がすべてのand およびに等しくない場合、このシーケンスになります。--- TDノエp1e1...prernei < 3ipik1 (mod pj)ij1 ≤ k ≤ ei、2007年3月25日

特に最後のコンディションのチェックで、これがゴルフできることはかなり確信しています。


3

Pyth、37バイト

e.f!&tZ|f>hT2JrPZ8}1%M*eMJs.b*LYSNJ)Q

テストスイート

OEISの式を使用します。キューブフリーで、1以外の素因数の1 modである素力係数はありません。

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