Ланцюг відповідей - позитивні дільники числа


13

Цей виклик, пов'язаний з відповідей, офіційно закінчився, в результаті чого перемогла майстер пшениці , що отримала 7 відповідей. Будь-яка інша відповідь вітається, але вона не впливатиме на прийняту відповідь на цей виклик, ні на переможця.


Завдання:

Роздрукуйте всі позитивні дільники числа, xвзятого як вхідне.

Вхід:

Єдине число, xяке є числом (у базі 10), чиї позитивні дільники повинні бути обчислені.

Вихід:

Всі позитивні подільники x. Будь-який формат допускається, в тому числі \n, ,, ;і прогалини в якості роздільників, до тих пір , як це зрозуміло. Вихідним може бути також масив Integers або Strings (наприклад:) [1, 2, 3, 5, 30]. Ви можете виводити дільники на stdout, консоль або їх аналог на вашій мові, або вони можуть бути повернуті з функції .


Правила

  • Користувач може не відповідати двічі поспіль
  • Ваша відповідь може видалити, додати або замінити максимум 15 символів з попередньої відповіді (пробіл не враховується), окрім відповіді 2, який може "перетворити" до 20 символів, щоб почати роботу
  • Вам заборонено публікувати відповідь мовою програмування, на яку вже є відповідь, виняток - це зовсім інша версія цієї мови (наприклад: Якщо я опублікую відповідь Python 2.7, ви можете подати її в Python 3, але не в Python 2.6)
  • Стандартні лазівки заборонені
  • Вам заборонено використовувати вбудовані модулі для отримання дільників заради цього завдання
  • Ви повинні вказати номер відповіді та назву мови в заголовку питання та кількість символів, змінених у попередній відповіді

Оцінка балів

Перемагає користувач, який отримав найбільше заявок, коли речі вирішаться. У разі вирівнювання виграє користувач, який отримав найбільшу оцінку за одну зі своїх відповідей. Якщо на рахунку також є нічия, тоді переможцем буде оголошено користувач із найдавнішим поданням (найстарша відповідь з найвищим рівнем).

Примітка: "вирішити" <=> 7 минуло 3 дні з моменту подання останньої відповіді


Приклади:

Input, Output:

14 => [1, 2, 7, 14]
25 => [1, 5, 25]
65 => [1, 5, 13, 65]
114 => [1, 2, 3, 6, 19, 38, 57, 114]

Або будь-який інший еквівалентний вихід, що відповідає згаданим умовам.


Заключна примітка : Це питання краще, якщо ви сортуєте відповіді за найстарішими. Я опублікую першу відповідь на Python 2.7, тож ви повинні опублікувати другу відповідь залежно від цієї. Хай щастить!


Табло:

Цей список може бути застарілим, його можна редагувати:

1) Пшеничний майстер [Поточний лідер 🏆] : 7 відповідей - Python 1.6 , 05AB1E , насправді , Del | m | t , WSF , Brain-Flak , Lenguage

2) Райлі: 3 відповіді - серйозно , CJam , 2able

3) Джонатан Аллан: 2 відповіді - Python 3 , Jelly

3) ETHproductions: 2 відповіді - Japt , Pyth

3) Міста Фіггінс: 2 відповіді - Befunge-98 , Brain-Flak Classic

6) Рікер: 1 відповідь - MATL

6) dzaima: 1 відповідь - SOGL 0.8.2

6) LegionMammal978: 1 відповідь - пробіл

6) Нік Кліффорд: 1 відповідь - Ом

6) Лінн: 1 відповідь - GolfScript

6) MickyT: 1 відповідь - Cubix

Калькулятор відстані

Цей фрагмент можна використовувати для обчислення відстані між двома записами:

function L(s,t){if(s===t)return 0;var S=s.length,T=t.length;if(S*T===0)return S+T;for(var i=0,v0=[],v1=[];i<=T;i++)v0[i]=i;for(i=0;i<S;i++){v1[0]=i+1;for(var j=0;j<T;j++)v1[j+1]=Math.min(v1[j]+1,v0[j+1]+1,v0[j]+(s[i]!=t[j]));for(j=0;j<=T;j++)v0[j]=v1[j]}return v1[T]}
<textarea id=A rows=10></textarea><textarea id=B rows=10></textarea><br>
Distance: <span id=O>0</span> <button onclick="O.innerHTML=L(A.value.replace(/\s/g,''),B.value.replace(/\s/g,''))">Run</button>


15 буде працювати, хоча 10 стандартно. Хочеться сказати, що тримай 15, бо це важче, ніж більшість.
Rɪᴋᴇʀ

2
Сподіваюся, ви не заперечуєте, але я додав фрагмент калькулятора відстані в нижній частині допису :-)
ETHproductions

2
Ця спільна робота, щоб піти назустріч, є прекрасною :)
Вальфрат

6
ВАЖЛИВО: Будь ласка, відредагуйте таблицю лідерів під час подання заявки, щоб було легше підтримувати ..
Містер Xcoder

2
Дивовижно бачити, як люди приносять відповіді з Python до Brain-Flak, із великою спільною роботою, від широко розповсюдженої мови до однієї з найбільш незрозумілих мов програмування, що коли-небудь створених. Дякуємо всім, хто це зробив! Зараз мені дуже цікаво подивитися, що відбувається з цим викликом, оскільки DjMcMayhem поставив це щедро .
Містер Xcoder

Відповіді:


12

Відповідь 20, Мозг-Флак , 11

Я хотів би просто витратити час, щоб подякувати всім, хто допоміг сприяти досягненню цієї мети:

  • Райлі, 20 байт

  • LegionMammal, 15 байт

  • ETHproductions, 11 байт

  • Лінн, 1 байт

Наступні користувачі не змогли безпосередньо вносити байти, але допомогли іншими способами:

  • Міста Фіггінс

  • DJMcMayhem

  • feersum

Дякуємо всім, що зробили це можливим!

"qd:A(),(;{A\%!},pe#&f!0pv'%QTS|Q@░┼_¥f::+!vUGw
)((({})<>)){((({}[()]<n=int(input({})(<>))><>)<{i=1div=wvhile(({})){({}[()])<>}{}}{}<>([{}()]{})><>)<>{ifn%i==g00div.append(<{}<>{}<>>i)i=i+1}{}printdiv)}
#R
{}T:.eX╜R;j`;╜0%Y*`M∩\"ILD¹s%_Ï,

Спробуйте в Інтернеті!


6
Нарешті, Мозок Флак! Дякуємо всім, хто допоміг досягти цієї мети! Вітаємо Wheat Wizard за те, що він користувач з найбільшою кількістю відповідей досі та за велику роботу та час, витрачений на цей виклик!
Містер Xcoder

7

Відповідь 3: MATL, відстань 15

:tGw\~)
%n=int(input())
%i=1
%div=[]
%while (i<=n):
%    if n % i == 0:
%        div.append(i)
%    i+=1
%print(div)

2
Продовжити MATL %важко. Успіхів іншим, і я дуже сподіваюсь, що цей виклик тут не "помре"!
Містер Xcoder

Це не використовує вбудований?
Джонатан Аллан

@JonathanAllan Ні, точно не. Вбудований для дільників є Z\. Відповідним кодом тут є :tGw\~)(про який я писав у чаті, а не вбудований)
Джеймс

Дійсно, немає вбудованого
містер Xcoder

1
@JonathanAllan Стіл може бути трохи заплутаним. Z\, ні \, є "дільниками". Тема в останніх трьох шпальтах вказує префікс ( X, Yабо Z). \сама по собі є першою колоною, тобто "мод"
Луїс Мендо

7

Відповідь 7, Japt, 15

ò f!vU"Gw\((()<>))
n=int(input())
i=1
div=[]
while (i<=n):
    if n % i == 0:
        div.append(i)
    i=i+1
print(div)#Rḍ⁸T”

Спробуйте в Інтернеті!

Змінено #b∫I:b;\?tна ò f!vU(10 балів) і додав ще декілька коду Brain-Flak, змінивши ~(()на ((()<>))(5 балів). Я вважаю, що код, над яким ми працюємо

((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>([{}()]{})><>)<>{(<{}<>{}<>>)}{})}{}

Пояснення

ò           Generate the range [0...input].
  f         Filter to only items Z where
   !vU        U.v(Z) returns truthily. (`fvU` would be Z.v(U))
              This returns true if U is divisible by Z, false otherwise.
      "...  The rest of the program is enclosed in this string, which is passed as an extra
            argument to `f`. Fortunately, `f` ignores it.
            Implicit: output result of last expression

6

Відповідь 8, 05AB1E , 14

"'ò f!vUGw\((()<>)){((({'
n=int(input())
i=1
div=[]
while (i<=n):
    if n % i == 0:
        div.append(i)
    i=i+1
print(div)
'#Rḍ⁸T”'".e

Спробуйте в Інтернеті!

Пояснення

На щастя 05AB1E має вбудований інтерпретатор Python (різновиди). Для того, щоб зробити цей пробіг, ми натискаємо

'ò f!vUGw\((()<>)){((({'
n=int(input())
i=1
div=[]
while (i<=n):
    if n % i == 0:
        div.append(i)
    i=i+1
print(div)
'#Rḍ⁸T”'

як рядок до верхньої частини стека. Ми повинні використовувати рядкові літерали замість коментарів, тому що 05AB1E дійсно не любить коментарів у своєму Python-коді. Ми також повинні позбутися "вихідного коду, оскільки це призводить до того, що рядок закінчується передчасно.

Після того, як рядок буде натиснуто, ми використовуємо її .eдля виконання як код python.

Робота в напрямку Brain-Flak

Мені вдалося додати 5 додаткових символів до мети зробити відповідь «Мозок-Флак». Я міг би додати 6, але на жаль, я забув, що пробіл не зараховується до бальної точки.

Поки що ми маємо:

((({})<>)){((({}     ((  )   )       (              <              )           (          )   )
((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>([{}()]{})><>)<>{(<{}<>{}<>>)}{})}{}

6

Відповідь 13, Піт , 15

f!%QTS|Q"@░┼_¥
f!vUGw((({})<>)){((({}[()]n=int(input({})(<>))i=1div=while((<>)){ifn%i==0div.append(i)i=i+1}printdiv)}#R{}T.eX
╜R;`;╜%Y*`M∩

Спробуйте в Інтернеті!

Пояснення

Тож я не знаю багато Pyth, але те, що я знаю, це те, що вихідний код є у вигляді дерева, кожна команда приймає певну кількість аргументів праворуч. Дерево програми, яку я написав дільником, виглядає так:

     f
    / \
   !   S
   |   |
   %   Q
  / \
 Q   T

Qє вхід. fприймає два аргументи, Fі A, і повертає елементи Tв Aяких F(T)повертає значення truthy. У цьому випадку Fце функція, яка повертає логічний НЕ Q%T, а Aє SQ, що створює діапазон [1...Q]. Це має ефект фільтрації тільки цілі числа , Tв [1...Q]якому Q%T == 0.

Щоб уникнути розбору решти коду, вся справа загортається в рядок, потім |Q"...повертається логічний АБО Qта рядок. Оскільки Qзавжди позитивний, він завжди є правдою, і тому завжди повертається з логічного АБО.


Попрацюйте в напрямку Brain-Flak

((({})<>)){((({}[()] (({})(<>))      ((             <>                 )   )  {(          )  })}{}
((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>([{}()]{})><>)<>{(<{}<>{}<>>)}{})}{}

Дійсно цікаво побачити, хто подасть відповідь Брейн-Флак, якщо це коли-небудь трапиться ..
Містер Xcoder

Ми наближаємось. Ми повинні бути там, відповівши 20 (якщо не раніше)
CalculatorFeline

Що ж, у нас є 54
години

Ну, ми приблизно на півдорозі, і це було сказано навколо відповіді 8, тому ми повинні закінчити близько 18
КалькуляторFeline

6

Відповідь 16, GolfScript, 15

~:
),(;{
\%!},p#&f!0pv'%QTS|Q"@░┼_¥f::+!vUGw((({})<>)){((({}[()]<n=int(input({})(<>))><>)<{i=1div=wvhile(({})){({}<>)){ifn%i==g00div.append(i)i=i+1{}printdiv)}#R{}T:.eX╜R;j`;╜0%Y*`M∩\

Спробуйте в Інтернеті!

Я додав ~:␤),(;{␤\%!},p#, використовуючи новий рядок як назву змінної, щоб відповідати обмеженню розміру, і повернув всю програму назад на один рядок, щоб прокоментувати її. Це була відстань 14. Потім я додав {раніше }printdivдля Brain-Flak.

~:␤                    Read input, store as NL
   ),(;                Range [1, 2... NL]
       {␤\%!},         Filter elements that divide NL
              p#       Print and comment everything else out

Робота в напрямку Brain-Flak

((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}     <>                 )   )  {(          ) {})}{}
((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>([{}()]{})><>)<>{(<{}<>{}<>>)}{})}{}

6

Відповідь 17, CJam , 15

qd:A
),(;
{A\%!},p
e#&f!0pv'%QTS|Q"@░┼_¥f::+!vUGw((({})<>)){((({}[()]<n=int(input({})(<>))><>)<{i=1div=wvhile(({})){({}[()])<>}{}}{)){ifn%i==g00div.append(i)i=i+1{}printdiv)}#R{}T:.eX╜R;j`;╜0%Y*`M∩\

Спробуйте в Інтернеті!

qd:A     # Get input as decimal and store it in A
),(;     # range [0..A]
{    },  # Filter where
 A\%!    # A mod this value == 0
       p # print 
e#...    # comment

Робота в напрямку Brain-Flak (30 хвилин)

)({}((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{            )   )  {(          ) {})}{}
 (  (( {})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>([{}()]{})><>)<>{(<{}<>{}<>>)}{})}{}

Нас насправді лише 30. замість того , щоб опустити зайві 4 -х символів ви можете перетворити )({}(((в ()({})((ціною тільки два, це не точна програма , яку ми мали на увазі , але ()і ({})не є НЕ-OPS в цьому контексті.
Ad Hoc Hunter Hunter

@WheatWizard Приємно! Я не дивився на власне код, просто провів його через перевірку відстані у питанні.
Райлі

5

Відповідь 4 - желе , 4

:tGw\~)
%n=int(input())
%i=1
%div=[]
%while (i<=n):
%    if n % i == 0:
%        div.append(i)
%    i+=1
%print(div)Rḍ⁸T

Спробуйте в Інтернеті!

Відповідний код:

Rḍ⁸T

)Діє як розрив між посиланнями, наскільки аналізатор стурбований (я вважаю).

Вбудований буде ÆD, замість цього, це створює діапазон від 1до входу з R, перевіряє на подільність за входом з ḍ⁸, а потім повертає список простих одноосновних індексів з T.


5

Відповідь 9, пробіли, 15

f!vUGw((({})<>)){((({}n=int(input())i=1div=while(i<=n):ifn%i==0:div.append(i)i=i+1printdiv)}#R{}T”.e<SPACES>

Де <SPACES>замінено на наступний рядок, де T0x09, Lє 0x0A і S0x20:

SSSLSLSTLTTTTTSSSLLSSSLSTSSTLSTSSTLTSSTLTSSSLSSSTLTSSSSTSSTLSTSSTLTSTTLTSTLLSLSL
LSSTLSLSTLSTSSSTSTSLTLSSLSLSLLSSSSLLLL

Бурхливий новий рядок доданий для наочності. Помітив, що правила задають лише символи, що не містять пробілів. Ні, не міг собі допомогти.

Робота в напрямку Brain-Flak

Я поняття не маю, що відбувалося раніше, тому зараз ми маємо:

((({})<>)){((({}     ((  )   )       (              <              )           (          )   )}{}
((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>([{}()]{})><>)<>{(<{}<>{}<>>)}{})}{}

5

Відповідь 18, WSF , 15

q   

































































    d:A(),(;{A\%!},pe#&f!0pv'%QTS|Q"@░┼_¥f::+!vUGw)(({})<>)){((({}[()]<n=int(input({})(<>))><>)<{i=1div=wvhile(({})){({}[()])<>}{}}{}<>([{}()]{})><>){ifn%i==g00div.append(i)i=i+1{}printdiv)}#R{}T:.eX╜R;j`;╜0%Y*`M∩\

(Це вимагає введення та виводу за допомогою символьного коду)

Пояснення

WSF по суті є brainfuck, за винятком того, що він використовує пробіл замість звичного набору операторів. Ось код, декомпільований у brainfuck:

,
[->+>>>>+<<<<<]>

[
[-<+>>>>+<<<]<[->+<]
>>>>>[-<<+>>]<[->+<]<
[>+>->+<[>]>[<+>-]<<[<]>-]
>>[-]+>[<->[-]]
<
[<<<<.>>>>-]<[->+<]<<<
-
]

Прогрес у напрямку Brain-Flak

Оскільки WSF - це лише пробіл, я зміг додати ще 15 символів на код Brain-Flak. Це ставить нас на відстані 15 від відповіді, тому сміливо публікуйте її.

()({})(({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>([{}()]{})>  )  {(          ) {})}{}
()({})(({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>([{}()]{})><>)<>{(<{}<>{}<>>)}{})}{}

Оскільки я не збираюся самостійно розміщувати відповідь «Мозковий спалах», я подумав, що просто знайду час, щоб подякувати всім, хто допоміг сприяти досягненню цієї мети:

  • Райлі, 16 байт

  • LegionMammal, 15 байт

  • ETHproductions, 11 байт

  • Лінн, 1 байт

Наступні користувачі не змогли безпосередньо вносити байти, але допомогли іншими способами:

  • Міста Фіггінс

Дякуємо всім, що зробили це можливим!


5

Відповідь 19, 2- х , 15

"qd:A(),(;{A\%!},pe#&f!0pv'%QTS|Q@░┼_¥f::+!vUGw)(({})<>)){((({}[()]<n=int(input({})(<>))><>)<{i=1div=wvhile(({})){({}[()])<>}{}}{}<>([{}()]{})><>){ifn%i==g00div.append(>>i)i=i+1}{}printdiv)}#R{}T:.eX╜R;j`;╜0%Y*`M∩\"
ILD¹s%_Ï,

Спробуйте в Інтернеті!

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

IL        # Push [1 .. input]
  D       # Duplicate
   ¹s%    # For each element: input % element
      _   # Logical not
       Ï  # Keep the values from [1 .. input] where this is 1
        , # print

5

Відповідь 21, Cubix , 15

Нарешті вдалося це вписати :) На щастя, це було після того, як відповідь «Мозг-Флак» була зроблена, тому що я думаю, я б заважав цьому. Потрібно було повних 15 для реалізації.

"qd:A(),(;{A\%!},pe#&f!0pv'%QTS|Q@░┼_¥f::+!vUGw
)(Is{})%?;ONou{((({}[()]<n=int(inpu;<@!-;<>))><>)<{i=1div=wvhile(({})){({}[()])<>}{}}{}<>([{}()]{})><>)<>{ifn%i==g00div.append(<{}<>{}<>>i)i=i+1}{}printdiv)}
#R
{}T:.eX╜R;j`;╜0%Y*`M∩\"ILD¹s%_Ï,

Це відображається на наступний куб

              " q d : A ( )
              , ( ; { A \ %
              ! } , p e # &
              f ! 0 p v ' %
              Q T S | Q @ ░
              ┼ _ ¥ f : : +
              ! v U G w ) (
I s { } ) % ? ; O N o u { ( ( ( { } [ ( ) ] < n = i n t
( i n p u ; < @ ! - ; < > ) ) > < > ) < { i = 1 d i v =
w v h i l e ( ( { } ) ) { ( { } [ ( ) ] ) < > } { } } {
} < > ( [ { } ( ) ] { } ) > < > ) < > { i f n % i = = g
0 0 d i v . a p p e n d ( < { } < > { } < > > i ) i = i
+ 1 } { } p r i n t d i v ) } # R { } T : . e X ╜ R ; j
` ; ╜ 0 % Y * ` M ∩ \ " I L D ¹ s % _ Ï , . . . . . . .
              . . . . . . .
              . . . . . . .
              . . . . . . .
              . . . . . . .
              . . . . . . .
              . . . . . . .
              . . . . . . .

Ви можете спробувати тут , але вам потрібно буде вставити його. Я підозрюю, що деякі спеціальні агенти створюють проблеми для постійної посилання.

Код, по суті, понад 2 рядки. Важливі частини:

I s     ) % ? ; O N o u 
        u ; < @ ! - ; 

I s )Це отримує вхід, підміняє верхню частину стека (0 також працював би) і збільшує значення
% ?Отримайте мод та тест. Якщо 0 продовжити вперед або вниз переспрямувати
; O N oВідкинути результати моди та вивести число, за яким слід новий рядок
uU, поверніть на рядок нижче.
Наступний порядок виконується
; - ! @ Вилучіть 10 зі стека, відніміть число з введення, тестуйте та завершіть, якщо нуль
< ; uПеренаправлення цілі для першого тесту. Видаліть верхню частину стека (або мод, або відніміть результат) і поверніть назад до збільшення


4

Відповідь 6, Python 1.6, 15

#b∫I:b;\?t"Gw\~(()
n=int(input())
i=1
div=[]
while (i<=n):
    if n % i == 0:
        div.append(i)
    i=i+1
print(div)#Rḍ⁸T”

Я видалив %символи і прокоментував перший рядок і трохи останній рядок. Це одне коштувало мені 10 моїх 15 балів. Однак я ще цього не зробив; оскільки Python 1 цієї статті не +=мені довелося замінити i+=1з i=i+1коштувало мені додаткові 3 очка. Оскільки у мене залишилось 2, я також додав ((до початку. Я збираюся пізніше подати заявку в Brain-Flak, і мені потрібні пароні.


1
+1 навіть після того, як ОП сказала, що з Python було зроблено, мабуть, не ....
HyperNeutrino

4

Відповідь 10, Ом , відстань 5

@░┼_¥
f!vUGw((({})<>)){((({}n=int(input())i=1div=while(i<=n):ifn%i==0:div.append(i)i=i+1printdiv)}#R{}T”.e<SPACES>

... де <SPACES>його замінює ця чудовиська струна з Білого простору .

Трохи нахабної відповіді, адже все інше - це лише дріт, який лежить невиконаним.


Якась робота в напрямку Brain-Flak тут?
CalculatorFeline

@CalculatorFeline Не боїться.
Нік Кліффорд

Дуже погано. 10 годин на Brainflak! Якщо тільки.
CalculatorFeline

4

Відповідь 12, Серйозно , 15

╩"@░┼_¥
f!vUGw((({})<>)){((({}[()]n=int(input())i=1div=while((<>)){ifn%i==0div.append(i)i=i+1}printdiv)}#R{}T.e"X
╜R;`;╜%Y*`M∩

Спробуйте в Інтернеті!

Єдина відмінність від На насправді відповіді, що серйозно використовує зворотні лапки , щоб відзначити функцію , де на самому ділі використовує і і ми просто зробити додаткові символи в рядок , то вискочити і відкинути його.


Робота в напрямку до мозку-Флак

((({})<>)){((({}[()] ((  )   )       ((             <>                 )   )  {(          )  })}{}
((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>([{}()]{})><>)<>{(<{}<>{}<>>)}{})}{}

+1 наблизивши конкурс на крок ближче до Brain-Flak. Лише 1 питання: Чи знаєте ви будь-яку мову програмування, дуже схожу на Серйозно?
Містер Xcoder

Інші, ніж насправді.
Містер Xcoder

@ Mr.Xcoder Я жодного разу не використовував. Я тільки знав, що Серйозно це подібне, адже насправді це просто Серйозно версія 2.0
Райлі

4

Відповідь 14, Del | m | t , 15

                                                f!%QTS|Q"@░┼_¥f!vUGw((({})<>)){((({}[()]<n=int(input({})(<>))><>)<{i=1div=while(({})){({}<>)){ifn%i==0div.append(i)i=i+1}printdiv)}#R{}T.eX╜R;`;╜%Y*`M∩

Спробуйте в Інтернеті!

Пояснення

Я справді починаю зловживати тим, що пробіли не враховуються до різниці. Del | m | t насправді не все так важливо, якими символами ви є, тому переважна більшість коду - це послідовність пробілів, і каретка повертається на початку програми. Фактичні видимі частини коду взагалі не виконуються.

Ось код, транскрибований більш "розумним" способом:

O R ^ V O @ A K T A J O @ A K U N R O @ B K U @ A K T Q ^ X @ B K T R ^ P O @ A K T K R ^ _ @ ^ @

Спробуйте в Інтернеті!

Як це працює на низькому рівні

Для початку O R ^ V це слугує для введення інформації про перший цикл і працює як неоперативний у всі інші часи.

Потім ми використовуємо, Oщоб зробити копію введення для подальшого.

@ A K Tнагадує змінну, що зберігається в позиції пам'яті -1 (на початку програми це 0), і A Jзбільшує її. O @ A K UЗберігає тепер збільшене значення назад у позиції пам'яті -1 для наступного циклу навколо.

Nобчислює мод копії вводу, який ми зробили деякий час назад, і значення щойно відкликане з пам'яті та Rзаперечує його.

Разом N Rстворіть булевий сигнал, який вказує, чи не поділяється наш вхід на TOS.

Ми зберігаємо копію цього булевого місця в просторі пам'яті -2, використовуючи O @ B K Uта вигадуючи значення з простору пам'яті -2, використовуючи @ A K T.

Ми підміняємо два верхні елементи, Qщоб переконатися, що булева поверхня знаходиться зверху, і виводимо значення, якщо булеве значення використовується правдою ^ X.

Якщо boolean був помилковим, у нас є додаткове значення, яке потрібно викорінити, тому ми пригадуємо булеве значення, яке ми зберігали у просторі -2, @ B K Tі виводимо значення, якщо воно неправдивеR ^ P .

Ми дублюємо вхідне значення з Oі віднімаємо значення в пам'яті -1 на @ A K T K. Якщо це нуль, ми виходимо R ^ _.

Нарешті, у нас @ ^це пропускається незалежно від наступного значення. Нам це потрібно, тому що є купа сміття (насправді лише @символ), що генерується видимою частиною коду.

Як тільки вона досягне кінця, вона повертається до початку.

Як це працює на високому рівні

Основна ідея полягає в тому, що у нас є значення, що зберігаються в основному в пам'яті -1, що збільшується щоразу, коли ми робимо цикл. Якщо це значення розділяє наш вхід, ми виводимо його, і коли два рівні, ми закінчуємо виконання.

Прогрес до Мозгового Флаку

Оскільки пробіли не враховуються до різниці, я зміг змінити код, не витративши жодного з моїх 15 балів, і, таким чином, всі вони були вкладені в код Brain-Flak.

Ось наше сьогоднішнє становище.

((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}     <>                 )   )  {(          )  })}{}
((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>([{}()]{})><>)<>{(<{}<>{}<>>)}{})}{}

Будь ласка, оновлюйте таблицю лідерів щоразу, коли ви надсилаєте відповідь.
Містер Xcoder

Лише 39 символів залишилось для відповіді "Мозок-Флак"! :) Це означає, що нам ще потрібно принаймні 3 відповіді ...
HyperNeutrino

4

Відповідь 15, Befunge-98, 15

&f!0pv
'         %QTS|Q" @ ░┼_¥f
:
:      
+      
!         vUGw(((   {})<>)){((({}[()
]    <    n=int(i   nput({})(<>))><>)
<      {i=1di     v
  =
w    v  
       hile(({      })){({}<>)){ifn%i==
g
0
0    div.app   en   d(i)i=i+1}printdiv)}#R{}T
:      
.    eX╜R;
j      
`      ;╜
0      
%  Y*`M∩
\

Спробуйте в Інтернеті!

(Напевно, є багато зайвого пробілу, але я не можу зараз пограти в гольф)

Я використав усі 15 для програми Befunge, тому цього разу не було змін у «Мозковій кришці».

Моя основна стратегія для цього полягала в тому, щоб пересилати IP, що йде вертикально, і використовувати пробіли для виконання певних символів з попереднього коду.

Пояснення:

Код, який має значення для програми Befunge, такий:

&f!0pv
'                 @
:
:
+
!
]    <
<                 v
w    v
g
0
0    d
:
.    e
j
`
0
%    `
\

Що еквівалентно:

&f!0pv   Gets input, and stores it at (0, 0) (where the & is)
         The v goes down, hits the < and ], which turns the IP up along the first line

!+::'&   There is a 0 at the bottom of the stack, so ! changes it to a 1 and + increments
         :: duplicates twice, and '& gets the input value

\%       swaps the input and iterator mods them
  0`j.   Checks if input mod iterator is 0 - if it is, print iterator

:00gw    gets the input again, and compares it to the iterator.
         If they are different, the IP travels right to the v
         Otherwise, it continues straight, and hits arrows leading to the end (@)

de`      pushes 0, to be used in the increment line

3

Відповідь 2 - Python 3 , 5

n=int(input())
i=1
div=[]
while (i<=n):
    if n % i == 0:
        div.append(i)
    i+=1
print(div)

Спробуйте в Інтернеті!


Тепер ви закрили список відповідей у ​​Python. Добре!
Містер Xcoder

@ Mr.Xcoder Що робити, якщо хтось використовує Python 3.5 та використовує asyncабо awaitвбудовує його? Чи вважатиметься це зовсім іншою мовою?
HyperNeutrino

3

Відповідь 5 - SOGL 0.8.2 , 9

b∫I:b;\?t"Gw\~)
%n=int(input())
%i=1
%div=[]
%while (i<=n):
%    if n % i == 0:
%        div.append(i)
%    i+=1
%print(div)Rḍ⁸T”

Пояснення:

b∫              repeat input times                [0]
  I             increment (the loop is 0-based)   [1]
   :b           duplicate                         [1, 1]
     ;          put the input one under the stack [1, 114, 1]
      \?        if divides                        [1, 1]
        t        output                           [1, 1]
         "...”   push that long string            [1, 1, "Gw\~...Rḍ⁸T"]

Примітка: інтерпретатору в даний час потрібна \nзаміна s , щоб не вважати це вхідним, але сам аналізатор вважає обидва взаємозамінними.


3

Відповідь 11, насправді , 15

╩@░┼_¥
f!vUGw((({})<>)){((({}]n=int(input())i=1div=while(i<=n):ifn%i==0:div.append(i)i=i+1printdiv)}#R{}T”.e
╜R;⌠;╜%Y*⌡M∩

Спробуйте в Інтернеті!

Пояснення

Насправді є хороший вбудований ÷для пошуку множників числа, проте нам не дозволяється використовувати такі вбудовані.

Я починаю із зберігання вхідних даних до регістрів, щоб воно було неушкоджено тим, що має бути. Я роблю це за допомогою але я міг би так само легко використовувати одну з інших доступних команд.

Потім я вставляю код, який у нас уже був (я видалив увесь пробіл, оскільки це було прикро працювати, я можу це зробити, тому що "пробіл не враховується"). На щастя, це багато нічого, коли стек порожній.

Тоді у нас є решта програми

╜   Pull our input from the register
R   Create the range of n
;   Duplicate the range
⌠   Declare a function
 ;  Duplicate n
 ╜  Pull from register
 %  Mod
 Y  Logical not
 *  Multiply by n
⌡   End Function
M   Map the function across the range
∩   Remove the zeros with a Intersection

Робота в напрямку до мозку-Флак

Все це працювало, і я зміг отримати лише одного зайвого батька.

((({})<>)){((({}   ] ((  )   )       (              <              )           (          )   )}{}
((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>([{}()]{})><>)<>{(<{}<>{}<>>)}{})}{}

Ви знаєте, якщо ми []вкладемо код Brain-Flak, ми можемо мати код Brainfcuk після нього. Можливо, відкриються можливості.
CalculatorFeline

@CalculatorFeline Я не думаю, що ми це робимо. Брейн-Флак сам по собі не має нічого спільного. Здійснювати подання в мозковій дурці було б дуже важко, але я не думаю, що Brain-Flak не зашкодить цьому.
Ad Hoc Hunter Hunter

Ну, планування Brainfuck було б гарною ідеєю на цьому етапі. Байти, які не можуть йти назустріч Flak, можна розмістити в іншому плануванні (наприклад, BF, Syms або звичайних мовах).
CalculatorFeline

@CalculatorFeline Справа в тому, що майже немає такого поняття, як байти, які не можуть йти в бік Brain-Flak. Якщо мова не має деяких дивних правил щодо паронів (у такому випадку це, мабуть, вже непридатне), ми можемо використовувати додаткові байти для вставки паронів.
Ad Hoc Garf Hunter

Чому ваш код видає додаткові 0 перед масивом ??
Містер Xcoder

3

23, Brain-Flak Classic, 13

"qd:A(),(;{A\%!},pe#&f!0pv'%QTS|Q@░┼_¥f::+!vUGw)(Is(({})<>))%?;ONou{((({}[]<n=int(inpu;({})(@!-;<>))><>)<{i=1div=wvhile(({})){({}[])<>}{}}{}<>({<({}[])>[]}[]{}{})><>)<>{ifn%i==g00div.append(<{}<>{}<>>i)i=i+1}{}printdiv)}#R{}T:.eX╜R;j`;╜0%Y*`M∩\"ILD¹s%_Ï,

Спочатку @Wheat Wizard опублікував класичний код мозку, як це було у відповіді 22:

()({})((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>({<({}[]{})           ><>)<>{(<{}<>{}<>>)}{})}{}
()({})((({})<>)){((({}[  ]<(({})(<>))><>)<{(({})){({}[  ])<>}{}}{}<>({<({}[]  )>[]}[]{}{})><>)<>{(<{}<>{}<>>)}{})}{}

Це вимкнено 17 символів. Однак мені вдалося стиснути це, просто перемістивши {})подальше право в запропонованому коді, щоб отримати

()({})((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>({<({}[]         {})><>)<>{(<{}<>{}<>>)}{})}{}
()({})((({})<>)){((({}[  ]<(({})(<>))><>)<{(({})){({}[  ])<>}{}}{}<>({<({}[])>[]}[]{}{})><>)<>{(<{}<>{}<>>)}{})}{}

Всього лише 13 символів! Тому все, що я робив, було додавати / видаляти дужки, щоб отримати запропонований код.


Оригінальний код, який я опублікував, мав друкарський помилок, він уже виправлений ( Дякую @WheatWizard! )



1

22, Lenguage , 15

Lenguage - це езоланг, який піклується лише про те, наскільки тривала програма не про її зміст. Таким чином, ми можемо створити будь-яку програму для продовження завдань, доповнивши останню програму належною кількістю пробілів. Ленгуаг складається в мозковий епізод, тому ми повторно використаємо програму «мозковий ебан», про яку я писав деякий час тому

,[->+>>>>+<<<<<]>[[-<+>>>>+<<<]<[->+<]>>>>>[-<<+>>]<[->+<]<[>+>->+<[>]>[<+>-]<<[<]>-]>>[-]+>[<->[-]]<[<<<<.>>>>-]<[->+<]<<<-]

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

<SPACES>"qd:A(),(;{A\%!},pe#&f!0pv'%QTS|Q@░┼_¥f::+!vUGw)(Is(({})<>))%?;ONou{((({}[()]<n=int(inpu;({})(@!-;<>))><>)<{i=1div=wvhile(({})){({}[()])<>}{}}{}<>({<[{}[]{})><>)<>{ifn%i==g00div.append(<{}<>{}<>>i)i=i+1}{}printdiv)}#R{}T:.eX╜R;j`;╜0%Y*`M∩\"ILD¹s%_Ï,

де <SPACES>представлено 55501429195173976989402130752788553046280971902194531020486729504671367937656404963353269263683332162717880399306 пробіли символів.

Чи я зловживаю пробілом, не враховуючи правило? Можливо,

Робота над Brain-Flak Classic

У нас були всі ці парени, тому я подумав, що розпочну нас по шляху до Brain-Flak Classic.

()({})((({})<>)){((({}[()]<(({})(<>))><>)<{(({})){({}[()])<>}{}}{}<>({<({}[]         {})><>)<>{(<{}<>{}<>>)}{})}{}
()({})((({})<>)){((({}[  ]<(({})(<>))><>)<{(({})){({}[  ])<>}{}}{}<>({<({}[])>[]}[]{}{})><>)<>{(<{}<>{}<>>)}{})}{}

Ще одна мета ... Це безумство. Мені це подобається!
Містер Xcoder

Отже, верхній ряд Brain-flak Classic - це те, що ми маємо, а нижній - те, що нам потрібно?
MildlyMilquetoast

@MistahFiggins так
Ad Hoc Garf Hunter

1
Тада! Brain-Flak Classic ближче, тому що я переїхав декілька
паренів
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.