Абелеві ордени


17

Якесь тло

У математиці група - це кортеж ( G , •), де G - множина, і • - це операція над G, така що для будь-яких двох елементів x і y в G , xy також у G .

Для деяких x , y , z в G основні аксіоми групи такі:

  • G буде закритий при •, тобто ху в G
  • Операція • асоціативна , тобто x • ( y z ) = ( xy ) • z
  • G має тотожне елемент, тобто існує е в G такий , що xe = x для всіх x
  • Операція • є зворотною , тобто існують a , b в G такі, що ax = y і yb = x

Гаразд, так це групи. Тепер ми визначили абелеву групу як групу ( G , •) таку, що • є комутативною операцією. Тобто xy = yx .

Останнє визначення. Порядок групи ( G , •), що позначається | G |, - кількість елементів у множині G .

Завдання

Абелеві порядки є цілими числами n такими, що кожна група порядку n - абелева. Послідовність абелевих замовлень становить A051532 в OEIS. Ваше завдання - створити n- й член цієї послідовності (1-індексований) із заданим цілим числом n . Ви повинні підтримувати вхід до найбільшого цілого числа, щоб нічого не переповнилося.

Вхід може надходити з аргументів функції, аргументів командного рядка, 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}*

Демонстрація в Інтернеті

Розсічення

Щоб перефразовувати частину інформації в ОЕІС, абелеві порядки - це кубічні нільпотентні порядки ; і ніл'потентние порядки числа , nдля яких не простий дільник потужності p^k | nнеконгруентні1 модулю іншого провідного дільника.

Якщо ми пройдемо тест без кубів, тест на нільпотентність зводиться до

  • Жоден простий коефіцієнт не дорівнює 1модулю іншого основного коефіцієнта
  • Якщо кратність штриха pє k, p^kне повинен дорівнювати по 1модулю іншого простого множника.

Але тоді друга умова передбачає перше, тому ми можемо зменшити його до

  • Якщо кратність штриха pє k, 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 , 25 березня 2007 рp1e1...prernei < 3ipik1 (mod pj)ij1 ≤ k ≤ ei

Я впевнений, що це може бути гольф, особливо перевірка останнього стану.


3

Pyth, 37 байт

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

Тестовий набір

Використовується формула з OEIS, без куб і без коефіцієнтів первинної потужності, які є 1 модом основним фактором, крім 1.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.