Các đơn đặt hàng Abelian


17

Một số nền tảng

Trong toán học, một nhóm là một tuple ( G , •), nơi G là một tập hợp và • là một hoạt động trên G như vậy mà cho hai yếu tố bất kỳ xy trong G , xy cũng nằm trong G .

Đối với một số x , y , z trong G , các tiên đề nhóm cơ bản như sau:

  • G được đóng dưới •, tức là xy trong G
  • Hoạt động • là kết hợp , tức là x • ( yz ) = ( xy ) • z
  • G có một yếu tố nhận dạng , tức là tồn tại e trong G sao cho xe = x với mọi x
  • Hoạt động • không thể đảo ngược , tức là tồn tại a , b trong G sao cho ax = yyb = x

Được rồi, đó là những nhóm. Bây giờ chúng tôi đã định nghĩa một nhóm Abelian là một nhóm ( G , •) sao cho • là một hoạt động giao hoán . Đó là, xy = yx .

Định nghĩa cuối cùng. Thứ tự của một nhóm ( G , •), ký hiệu | G |, là số phần tử trong tập hợp G .

Bài tập

Các đơn đặt hàng Abel là số nguyên n sao cho mọi nhóm đơn hàng n là Abelian. Trình tự các đơn đặt hàng của Abel là A051532 trong OEIS. Công việc của bạn là tạo ra số hạng thứ n của chuỗi này (được lập chỉ mục 1) với số nguyên n . Bạn phải hỗ trợ đầu vào lên đến số nguyên lớn nhất để không có gì tràn vào.

Đầu vào có thể đến từ các đối số chức năng, đối số dòng lệnh, STDIN hoặc bất cứ điều gì thuận tiện.

Đầu ra có thể được trả về từ một chức năng, được in ra STDOUT hoặc bất cứ điều gì thuận tiện. Không có gì nên được viết cho STDERR.

Điểm là số byte, chiến thắng ngắn nhất.

Ví dụ

Dưới đây là 25 điều khoản đầu tiên của chuỗi:

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

Câu trả lời:


6

CJam ( 35 32 byte)

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

Bản demo trực tuyến

Mổ xẻ

Để viết lại một số thông tin trong OEIS, các đơn đặt hàng Abel là các đơn đặt hàng nilpotent không có khối lập phương ; và các đơn đặt hàng nilpotent là những con số nmà không có ước số p^k | nlũy thừa nào phù hợp với 1modulo một ước số nguyên tố khác.

Nếu chúng tôi vượt qua bài kiểm tra không có khối lập phương, bài kiểm tra nilpotency giảm xuống còn

  • Không có thừa số nguyên tố nào bằng 1modulo một thừa số nguyên tố khác
  • Nếu bội số của số nguyên tố pk, p^kkhông được bằng 1modulo một thừa số nguyên tố khác.

Nhưng sau đó điều kiện thứ hai ngụ ý điều kiện thứ nhất, vì vậy chúng ta có thể giảm nó xuống

  • Nếu bội số của số nguyên tố pk, p^kkhông được bằng 1modulo một thừa số nguyên tố khác.

Lưu ý rằng chữ "khác" là không cần thiết, bởi vì p^a == 0 (mod p)cho 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
Cảm ơn bạn đã giải thích rất kỹ lưỡng và hấp dẫn! :)
Máy Fax

5

CJam, 46 45 byte

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

Kiểm tra nó ở đây.

Tôi đang sử dụng điều kiện được đưa ra trên trang OEIS:

Hãy để cho nguyên tố của nbe . Sau đó là trong chuỗi này nếu cho tất cả và không bằng cho tất cả và và . --- TD Noe , ngày 25 tháng 3 năm 2007p1e1...prernei < 3ipik1 (mod pj)ij1 ≤ k ≤ ei

Tôi khá chắc chắn điều này có thể được đánh gôn, đặc biệt là kiểm tra tình trạng cuối cùng.


3

Bình thường, 37 byte

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

Bộ kiểm tra

Sử dụng công thức từ OEIS, cubefree và không có thừa số nguyên tố nào là 1 mod một thừa số nguyên tố, ngoài 1.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.