아벨 리아의 명령


17

일부 배경

수학에서 그룹 은 튜플 ( G , •)이며 여기서 G 는 집합이며 • G 의 연산은 x 에서 y의 두 요소 에 대해 G입니다 . XY는 도이고 G는 .

일부 x , y , Z 에서의 G , 염기성 기 공리는 다음이다 :

  • G 는 아래에서 닫힙니다 . 즉 XYG
  • 작업은 연관 적입니다 . 즉 x • ( yz ) = ( xy ) • z
  • G는신원 요소, 즉 존재 전자G 등 그 XE = X 모든 X
  • 작업이 •이다 invertable 즉 존재 , BG 되도록 • X = YYB = X

자, 그것들은 그룹입니다. 이제 우리는 Abelian 그룹 을 그룹 ( G , •) 으로 정의하여 다음 과 같이 정류 작업을 수행합니다. 즉, xy = yx 입니다.

마지막 정의. 그룹 의 순서 ( G , •)는 | G |는 세트 G 의 요소 수입니다 .

직무

Abelian 차수는 정수 n 이므로 모든 차수 n 그룹 은 Abelian입니다. OEIS에서 Abelian 주문 순서는 A051532 입니다. 당신의 임무는 정수 n이 주어지면이 순서 의 n 번째 항 (1 색인)을 생성하는 것 . 오버플로가 발생하지 않도록 최대 정수까지의 입력을 지원해야합니다.

입력은 함수 인수, 명령 행 인수, 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의 일부 정보를 다시 말하면, Abelian 주문은 큐브가없는 전능 한 주문입니다 . 무전 위 명령은 n소수의 제수 p^k | n를 합치 지 않는 숫자 입니다.1 다른 소수의 제수 모듈로 .

큐브없는 테스트를 통과하면 전무 테스트는

  • 소인수는 1다른 소수 인 모듈로와 같지 않습니다
  • 소수의 소수 pk이면 다른 소수 인 모듈로와 p^k같지 않아야합니다 1.

그러나 두 번째 조건은 첫 번째 조건을 의미하므로

  • 소수의 소수 pk이면 다른 소수 인 모듈로와 p^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합니다 . 그런 경우,이 시퀀스에 모두 와 동일하지 않는 모든 하고 그리고 . --- TD Noe , 2007 년 3 월 25 일p1e1...prernei < 3ipik1 (mod pj)ij1 ≤ k ≤ ei

나는 이것이 골프가 될 수 있다고 확신합니다. 특히 마지막 상태를 확인하십시오.


3

Pyth, 37 바이트

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

테스트 스위트

OEIS의 공식을 사용하고, 큐브가없고 1 mod 이외의 1- 소요 인 인 1- 원소 요인을 사용하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.