การตอบรับสาย - ตัวหารที่เป็นบวกของตัวเลข


13

นี้ความท้าทายอย่างเป็นทางการมากกว่าผลในการชนะของข้าวสาลีช่วยสร้างมีทั้งหมด 7 คำตอบ คำตอบอื่น ๆ ยินดีต้อนรับ แต่จะไม่มีผลต่อคำตอบที่ยอมรับสำหรับความท้าทายนี้หรือผู้ชนะ


งาน:

พิมพ์ตัวหารที่เป็นบวกทั้งหมดของตัวเลขที่xนำมาเป็นอินพุต

การป้อนข้อมูล:

หมายเลขเดียวxซึ่งเป็นตัวเลข (ในฐาน 10) ที่มีตัวหารแบบบวกควรคำนวณ

เอาท์พุท:

xทั้งหมดหารบวกของ รูปแบบใด ๆ ที่ได้รับอนุญาตรวมทั้ง\n, ,, ;และช่องว่างเป็นตัวคั่นตราบใดที่มันเป็นที่เข้าใจ เอาท์พุทสามารถเป็นอาร์เรย์ของจำนวนเต็มหรือสตริงเกินไป (เช่น[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) Wheat Wizard [ผู้นำปัจจุบัน🏆] : 7 คำตอบ - Python 1.6 , 05AB1E , ที่จริง , Del | m | t , WSF , Brain-Flak , Lenguage

2) Riley: 3 คำตอบ - อย่างจริงจัง , CJam , 2sable

3) Jonathan Allan: 2 คำตอบ - Python 3 , Jelly

3) ETHproductions: 2 คำตอบ - Japt , Pyth

3) Mistah Figgins: 2 คำตอบ - Befunge-98 , Brain-Flak Classic

6) Riker: 1 คำตอบ - MATL

6) dzaima: 1 คำตอบ - SOGL 0.8.2

6) LegionMammal978: 1 คำตอบ - ช่องว่าง

6) Nick Clifford: 1 คำตอบ - โอห์ม

6) Lynn: 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
ฉันหวังว่าคุณจะไม่รังเกียจ แต่ฉันได้เพิ่ม
เกร็ดเล็กเกร็ดน้อย

2
ว่าการทำงานร่วมกันเพื่อไปสู่การเป็น brainfuck :) สวยงาม
Walfrat

6
สำคัญ:โปรดแก้ไขกระดานผู้นำเมื่อคุณส่งผลงานดังนั้นจึงง่ายต่อการดูแล ..
Mr. Xcoder

2
มันยอดเยี่ยมมากที่ผู้คนนำคำตอบจาก Python ไปยัง Brain-Flak ด้วยการทำงานร่วมกันที่ยอดเยี่ยมตั้งแต่ภาษาที่มีการแพร่กระจายอย่างกว้างขวางไปจนถึงภาษาการเขียนโปรแกรมที่คลุมเครือที่สุดเท่าที่เคยสร้างมา ขอบคุณทุกคนที่ทำให้มันเกิดขึ้น! ตอนนี้ฉันสนใจที่จะเห็นสิ่งที่เกิดขึ้นกับความท้าทายนี้เนื่องจากDjMcMayhemได้ให้ความสำคัญกับมัน
นาย Xcoder

คำตอบ:


12

คำตอบ 20, Brain-Flak , 11

ฉันต้องการใช้เวลาในการขอบคุณทุกคนที่ช่วยให้มีส่วนร่วมในเป้าหมายนี้:

  • Riley, 20 ไบต์

  • LegionMammal ขนาด 15 ไบต์

  • ETHProductions ขนาด 11 ไบต์

  • Lynn 1 ไบต์

ผู้ใช้ต่อไปนี้ไม่สามารถมีส่วนร่วมในไบต์โดยตรง แต่ช่วยด้วยวิธีอื่น:

  • Mistah Figgins

  • 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
ในที่สุด Brain Flak! ขอบคุณทุกคนที่ช่วยให้บรรลุเป้าหมายนี้! ขอแสดงความยินดีกับ Wheat Wizard สำหรับการเป็นผู้ใช้ที่มีคำตอบมากที่สุดเพื่อให้ได้งานและเวลาที่ยอดเยี่ยมสำหรับความท้าทายนี้!
Mr. 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 %ทำให้มันยากที่จะดำเนินการต่อไป ขอให้โชคดีกับคนอื่นและฉันหวังว่าการท้าทายนี้จะไม่ "ตาย" ที่นี่!
Mr. Xcoder

สิ่งนี้ไม่ได้ใช้งานหรือไม่?
Jonathan Allan

@JanathanAllan ไม่ไม่แน่นอน builtin Z\สำหรับตัวหารเป็น รหัสที่เกี่ยวข้องที่นี่คือ:tGw\~)(ที่ฉันเขียนในการแชทไม่ได้สร้างขึ้น)
James

อันที่จริงมีในตัวไม่มี
นาย Xcoder

1
@JanathanAllan ตารางอาจทำให้สับสนเล็กน้อย Z\ไม่ใช่\คือ "ตัวหาร" หัวข้อในคอลัมน์ที่สามที่ผ่านมาแสดงให้เห็นคำนำหน้า ( X, YหรือZ) \โดยตัวมันเองเป็นคอลัมน์แรกเช่น "mod"
Luis Mendo

7

ตอบ 7, Japtap, 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เพื่อรันเป็นรหัสหลาม

ทำงานต่อ Brain-Flak

ฉันสามารถเพิ่มตัวละครพิเศษ 5 ตัวเพื่อบรรลุเป้าหมายในการตอบ Brain-Flak ฉันสามารถเพิ่ม 6 ได้ แต่อนิจจาฉันลืมช่องว่างไม่นับคะแนน

จนถึงตอนนี้เรามี:

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

6

ตอบ 13, Pyth , 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เป็นบวกเสมอมันเป็นความจริงเสมอและทำให้ได้รับคืนจากตรรกะ OR เสมอ


ทำงานต่อ Brain-Flak

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

อยากรู้อยากเห็นจริง ๆ ว่าใครจะส่งคำตอบ Brain-Flak ถ้ามันเกิดขึ้น ..
นาย Xcoder

เราเข้าใกล้แล้ว เราควรอยู่ที่นั่นโดยตอบ 20 (ถ้าไม่ใช่ก่อนหน้า)
CalculatorFeline

เรามี 54 ตัวอักษรให้ไป ...
ETHproductions

ทีนี้เราประมาณครึ่งทางแล้วสิ่งนี้ระบุไว้ในคำตอบ 8 ดังนั้นเราควรจะเสร็จประมาณ 18
เครื่องคิดเลข

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#โดยใช้ newline เป็นชื่อตัวแปรเพื่อให้พอดีกับข้อ จำกัด ด้านขนาดและทำให้โปรแกรมทั้งหมดกลับไปเป็นหนึ่งบรรทัดเพื่อคอมเม้นต์ นี่คือระยะทาง 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 to go)

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

เราอยู่ห่างออกไปเพียง 30 แทนถนัดพิเศษ 4 ตัวอักษรที่คุณสามารถเปลี่ยน)({}(((ไป()({})((ที่ค่าใช้จ่ายเพียงสองคนนี้ไม่ได้เป็นโปรแกรมที่แน่นอนที่เรามีอยู่ในใจ แต่()และ({})มีทั้งที่ยังไม่มีการปฏิบัติการในบริบทนี้
Ad Hoc Garf Hunter

@Weateat ตัวช่วยสร้างดี! ฉันไม่ได้ดูรหัสจริงแค่วิ่งผ่านตัวตรวจสอบระยะทางในคำถาม
Riley

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

การ)กระทำที่เป็นตัวแบ่งระหว่างการเชื่อมโยงเท่าที่ parser เกี่ยวข้อง (ฉันเชื่อ)

ในตัวจะÆDแทนช่วงนี้สร้างจาก1การป้อนข้อมูลที่มีRการตรวจสอบสำหรับการหารโดยการป้อนข้อมูลด้วยḍ⁸แล้วส่งกลับรายการของดัชนี truthy 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>จะถูกแทนที่ด้วยสตริงต่อไปนี้ที่Tเป็น 0x09, Lเป็น 0x0A และSเป็น 0x20:

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 นี่คือรหัส decompiled เป็น brainfuck:

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

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

ความก้าวหน้าสู่ Brain-Flak

เนื่องจาก WSF เป็นเพียงช่องว่างเท่านั้นฉันจึงสามารถเพิ่มอักขระอีก 15 ตัวบนรหัส Brain-Flak สิ่งนี้ทำให้เราห่างจากคำตอบ 15 ดังนั้นโปรดโพสต์ได้ฟรี

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

เนื่องจากฉันจะไม่ไปโพสต์คำตอบที่สะกิดใจตัวเองฉันคิดว่าฉันจะใช้เวลาขอบคุณทุกคนที่ช่วยให้มีส่วนร่วมในเป้าหมายนี้:

  • Riley, 16 ไบต์

  • LegionMammal ขนาด 15 ไบต์

  • ETHProductions ขนาด 11 ไบต์

  • Lynn 1 ไบต์

ผู้ใช้ต่อไปนี้ไม่สามารถมีส่วนร่วมในไบต์โดยตรง แต่ช่วยด้วยวิธีอื่น:

  • Mistah Figgins

ขอบคุณทุกคนที่ทำให้สิ่งนี้เป็นจริง!


5

คำตอบ 19, 2sable , 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

ในที่สุดก็จัดการเพื่อให้พอดีกับนี้ใน :) โชคดีที่มันเป็นคำตอบหลังจากที่ Brain-Flak ได้ทำเพราะฉันคิดว่าฉันจะได้ขัดขวาง ต้องการเต็ม 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 จะได้ผลเช่นกัน) และการเพิ่มขึ้น
% ?รับ mod และการทดสอบ ถ้า 0 ไปข้างหน้าหรือเลื่อนลงไปที่การเปลี่ยนทิศทาง
; O N oปล่อยผลลัพธ์ mod และส่งออกตัวเลขตามด้วย newline
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 ในภายหลังและฉันต้องการ parens


1
1 แม้หลังจาก OP กล่าวว่างูใหญ่ทำด้วยเห็นได้ชัดไม่ได้ ....
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 ไม่กลัว
Nick Clifford

เลวร้ายเกินไป. 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∩

ลองออนไลน์!

เฉพาะที่แตกต่างจากที่จริงคำตอบก็คือว่าอย่างจริงจังใช้ backticks เพื่อทำเครื่องหมายฟังก์ชั่นที่จริงใช้และและเราก็ทำให้ตัวละครพิเศษเป็นสตริงแล้ว pop และทิ้งมัน


ทำงานสู่สมอง - สะเก็ดระเบิด

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

+1 นำการประกวดเข้าใกล้ Brain-Flak หนึ่งขั้น เพียง 1 คำถาม: คุณรู้ภาษาการเขียนโปรแกรมใด ๆ ที่คล้ายกับอย่างจริงจัง?
นาย Xcoder

นอกเหนือจากความเป็นจริง
Mr. Xcoder

@ Mr.Xcoder ฉันไม่ได้ใช้อะไรเลย ฉันรู้แค่ว่ามันคล้ายกันอย่างจริงจังเพราะจริงๆแล้วเป็นรุ่นจริงจัง 2.0
Riley

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 บริการนี้เพื่อรับอินพุตในลูปแรกและทำงานเป็น no-op เวลาอื่นทั้งหมด

จากนั้นเราจะใช้Oเพื่อทำสำเนาของอินพุตในภายหลัง

@ A K Tเรียกคืนตัวแปรที่เก็บอยู่ในตำแหน่งหน่วยความจำ -1 (ที่จุดเริ่มต้นของโปรแกรมนี่คือ 0) และA Jเพิ่มขึ้น O @ A K Uเก็บค่าที่เพิ่มขึ้นตอนนี้กลับไปที่ตำแหน่งหน่วยความจำ -1 สำหรับลูปถัดไปของเรา

Nคำนวณ mod ของสำเนาของอินพุตที่เราทำไปครู่หนึ่งและค่าที่ถูกเรียกคืนจากหน่วยความจำและทำให้เป็นRโมฆะ

ร่วมกันN Rสร้างบูลีนที่บ่งชี้ว่าข้อมูลของเราสามารถหารด้วย TOS ได้หรือไม่

เราเก็บสำเนาของบูลนี้ไปยังพื้นที่หน่วยความจำ -2 ใช้O @ B K Uและเรียกคืนค่าจากพื้นที่หน่วยความจำ -2 @ A K Tใช้

เราสลับด้านบนทั้งสององค์ประกอบที่มีเพื่อให้มั่นใจว่าบูลอยู่ด้านบนและผลผลิตคุ้มค่าถ้าบูลเป็นจริงโดยใช้Q^ X

ถ้าแบบบูลเป็นของปลอมเรามีมูลค่าเพิ่มที่จะต้องกำจัดให้สิ้นซากเพื่อให้เราจำเราบูลที่เก็บไว้ในพื้นที่ที่มี -2 และป๊อปค่าถ้ามันเป็นเท็จ@ B K TR ^ P

เราซ้ำค่าการป้อนข้อมูลที่มีOและลบค่าในหน่วยความจำ -1 @ A K T Kกับ R ^ _ถ้าเรื่องนี้เป็นศูนย์ที่เราออกจาก

ในที่สุดเราก็@ ^ข้ามสิ่งนี้ไปไม่ว่ามูลค่าต่อไป เราต้องการสิ่งนี้เพราะมีขยะจำนวนมาก (จริง ๆ แล้วเป็นเพียง@สัญลักษณ์) ที่สร้างขึ้นโดยส่วนที่มองเห็นได้ของรหัส

เมื่อถึงจุดสิ้นสุดมันจะวนกลับไปสู่จุดเริ่มต้น

มันทำงานอย่างไรในระดับสูง

แนวคิดพื้นฐานคือเรามีค่าที่เก็บไว้ที่หน่วยความจำ -1 เป็นหลักซึ่งจะเพิ่มขึ้นทุกครั้งที่เราวนซ้ำ หากค่านั้นหารอินพุตของเราเราจะเอาท์พุทและเมื่อทั้งสองเท่ากันเราจะสิ้นสุดการประมวลผล

ความคืบหน้าสู่การสะเก็ดระเบิดของสมอง

เพราะช่องว่างไม่นับรวมกับความแตกต่างฉันจึงสามารถเปลี่ยนรหัสได้โดยไม่ต้องใช้จ่าย 15 คะแนนของฉันและทำให้พวกเขาทั้งหมดลงทุนในรหัส Brain-Flak

นี่คือสถานะปัจจุบันของเรา

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

โปรดอัปเดตกระดานผู้นำทุกครั้งที่คุณส่งคำตอบ
นาย Xcoder

เหลือเพียง 39 ตัวอักษรสำหรับคำตอบของ Brain-Flak! :) นั่นหมายความว่าเรายังต้องการคำตอบอย่างน้อย 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∩
\

ลองออนไลน์!

(อาจมีพื้นที่ว่างที่ไม่จำเป็นจำนวนมาก แต่ฉันไม่สามารถตีกอล์ฟออกได้ในตอนนี้)

ฉันใช้โปรแกรม Befunge ทั้ง 15 รายการดังนั้นจึงไม่มีการเปลี่ยนแปลงในสมองครั้งนี้

กลยุทธ์หลักของฉันคือส่ง 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 แล้ว ดี!
Mr. 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"]

หมายเหตุ: ในปัจจุบันล่ามจำเป็นต้องเปลี่ยน\ns เพื่อไม่นับเป็นอินพุต แต่ตัวแยกวิเคราะห์พิจารณาว่าทั้งสองสามารถเปลี่ยนได้


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∩

ลองออนไลน์!

คำอธิบาย

ที่จริงแล้วมี builtin ที่ดี÷สำหรับการค้นหาปัจจัยของตัวเลขอย่างไรก็ตามเราไม่ได้รับอนุญาตให้ใช้ builtins ดังกล่าว

ฉันเริ่มต้นด้วยการจัดเก็บข้อมูลลงในทะเบียนเพื่อที่จะไม่เป็นอันตรายจากสิ่งที่จะเกิดขึ้น ฉันใช้สิ่งนี้แต่ฉันสามารถใช้คำสั่งอื่นที่ใช้ได้อย่างง่ายดาย

จากนั้นฉันก็วางรหัสที่เรามีอยู่แล้ว (ฉันลบช่องว่างทั้งหมดเพราะมันน่ารำคาญที่จะทำงานด้วยฉันสามารถทำได้เพราะ "ช่องว่างไม่นับ") โชคดีที่มันไม่ทำอะไรเลยมากมายเมื่อกองว่างเปล่า

จากนั้นเรามีโปรแกรมที่เหลือ

╜   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

ทำงานสู่สมอง - สะเก็ดระเบิด

ทุกอย่างที่ฉันและฉันสามารถทำได้เพียงหนึ่ง paren พิเศษใน

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

คุณรู้ไหมว่าถ้าเราใส่รหัส Brain-Flak ไว้ใน[]นั้นเราสามารถมีรหัส Brainfcuk ได้หลังจากนั้น อาจเปิดโอกาสให้
CalculatorFeline

@CalculatorFeline ฉันไม่คิดว่าเราจะทำ Brain-Flak ด้วยตัวมันเองไม่ทำอะไรเลยใน brainfuck การยื่นใน brainfuck นั้นยากมาก แต่ฉันไม่คิดว่า Brain-Flak จะทำอันตรายใด ๆ
Ad Hoc Garf Hunter

การวางแผน Brainfuck เป็นความคิดที่ดีในขั้นตอนนี้ สามารถวางไบต์ที่ไม่สามารถไปถึง Flak ในการวางแผนอื่น ๆ (เช่น BF, Syms หรือภาษาทั่วไป)
CalculatorFeline

@CalculatorFeline สิ่งที่มีอยู่มากไม่มีสิ่งเช่นไบต์ที่ไม่สามารถไปสู่ ​​Brain-Flak ยกเว้นว่าภาษานั้นมีกฎแปลก ๆ เกี่ยวกับการเลียนแบบ (ซึ่งในกรณีนี้อาจใช้ไม่ได้) เราสามารถใช้ไบต์พิเศษเพื่อแทรก parens ได้
Ad Hoc Garf Hunter

ทำไมโค้ดของคุณถึงมีค่าเป็น 0 ก่อนอาเรย์
Mr. 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%_Ï,

ในขั้นต้น@Weat Wizardได้โพสต์โค้ดแบบสะเก็ดระเบิดในสมองตามคำตอบที่ 22:

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

นี่คือ 17 ตัวอักษรออก อย่างไรก็ตามฉันสามารถบีบอัดสิ่งนี้ได้โดยเพียงแค่เลื่อน{})ไปทางขวาเพิ่มเติมในรหัสที่เสนอเพื่อรับ

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

ซึ่งมีเพียง 13 ตัวอักษรเท่านั้น! ดังนั้นทั้งหมดที่ฉันทำคือเพิ่ม / ลบวงเล็บเพื่อรับรหัสที่เสนอ


รหัสเดิมที่ฉันโพสต์มีตัวพิมพ์ผิดตอนนี้ได้รับการแก้ไขแล้ว ( ขอบคุณ @WheatWizard! )



1

22, Lenguage , 15

Lenguage เป็น esolang ที่ให้ความสำคัญกับระยะเวลาที่โปรแกรมไม่ได้เกี่ยวกับเนื้อหา ดังนั้นเราสามารถสร้างโปรแกรม lenguage ที่เราต้องการได้โดยการเติมโปรแกรมสุดท้ายด้วยจำนวนช่องว่างที่เหมาะสม Lenguage ถูกรวบรวมเป็น brainfuck ดังนั้นเราจะนำโปรแกรม brainfuck ที่ฉันเขียนไปใช้ใหม่

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

ฉันทำการเปลี่ยนแปลงเล็กน้อยในโปรแกรมหลักเพื่อความสะดวกในการตอบในภายหลัง แต่ผลลัพธ์สุดท้ายมีลักษณะดังนี้:

<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

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

เป้าหมายอื่น ... นั่นคือความบ้าคลั่ง ฉันชอบมัน!
Mr. Xcoder

ดังนั้นแถวบนสุดของ Brain-flak Classic คือสิ่งที่เรามีและด้านล่างคือสิ่งที่เราต้องการ
MildlyMilquetoast

@MistahFiggins ใช่
Ad Hoc Garf Hunter

1
Tada! Brain-Flak Classic เข้าใกล้มากขึ้นเพราะฉันขยับบาง parens ไปรอบ ๆ
MildlyMilquetoast
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.