สี่จำนวนเต็มดังนี้
ในการท้าทายนี้คุณจะทดสอบคุณสมบัติที่แตกต่างกันสี่ค่าของจำนวนเต็มบวกที่กำหนดโดยลำดับต่อไปนี้ จำนวนเต็มบวกNคือ
- ที่สมบูรณ์แบบ ( OEIS A000396 ) ถ้าผลรวมของตัวหารที่เหมาะสมของNเท่ากับN ลำดับเริ่มต้นด้วย 6, 28, 496, 8128, 33550336, 8589869056, 137438691328, 2305843008139952128 ...
- refactorable ( OEIS A033950 ) ถ้าจำนวนของตัวหารของNเป็นตัวหารของN ลำดับเริ่มต้นด้วย 1, 2, 8, 9, 12, 18, 24, 36, 40, 56, 60, 72, 80, 84, 88, 96, 104, 108, 128 ...
- ปฏิบัติ ( OEIS A005153 ) ถ้าทุกจำนวนเต็ม1 ≤ K ≤ Nเป็นผลรวมของบางอย่างที่แตกต่างของตัวหารN ลำดับเริ่มต้นด้วย 1, 2, 4, 6, 8, 12, 16, 18, 20, 24, 28, 30, 32, 36, 40, 42, 48, 54, 56 ...
- คอมโพสิตสูง ( OEIS A002128 ) ถ้าจำนวนทุก1 ≤ K <Nมีตัวหารอย่างเคร่งครัดน้อยกว่าN ลำดับเริ่มต้นด้วย 1, 2, 4, 6, 12, 24, 36, 48, 60, 120, 180, 240, 360, 720, 840, 1260, 1680, 2520, 5040 ...
สี่โปรแกรม
งานของคุณคือการเขียนสี่โปรแกรม (หมายถึงโปรแกรมเต็มนิยามฟังก์ชันหรือฟังก์ชั่นที่ไม่ระบุชื่อที่ทำงาน I / O โดยใด ๆ ของวิธีการมาตรฐาน ) แต่ละโปรแกรมจะแก้ปัญหาการเป็นสมาชิกของหนึ่งในลำดับเหล่านี้ กล่าวอีกนัยหนึ่งแต่ละโปรแกรมจะใช้จำนวนเต็มบวกN ≥ 1เป็นอินพุตและส่งออกค่าจริงถ้าNอยู่ในลำดับและค่าเท็จถ้าไม่ คุณสามารถสันนิษฐานได้ว่าNอยู่ในขอบเขตของประเภทจำนวนเต็มมาตรฐานของภาษาการเขียนโปรแกรมของคุณ
โปรแกรมจะต้องเกี่ยวข้องในวิธีดังต่อไปนี้ มีสี่สายABCD
เช่นนั้น
AC
เป็นโปรแกรมที่รับรู้ตัวเลขที่สมบูรณ์แบบAD
เป็นโปรแกรมที่รับรู้จำนวน refactorableBC
เป็นโปรแกรมที่จดจำตัวเลขที่ใช้งานได้จริงBD
เป็นโปรแกรมที่รับรู้ตัวเลขคอมโพสิตสูง
เกณฑ์การให้คะแนน
คะแนนของคุณคือความยาวทั้งหมด (เป็นไบต์) ของสตริงABCD
หรือในคำอื่น ๆ จำนวนไบต์ทั้งหมดของสี่โปรแกรมหารด้วยสอง คะแนนต่ำสุดในแต่ละภาษาการเขียนโปรแกรมเป็นผู้ชนะ ใช้กฎมาตรฐานของกอล์ฟ
ตัวอย่างเช่นถ้าสี่สตริงa{
, b{n
, +n}
และ=n}?
จากนั้นโปรแกรมที่สี่a{+n}
, a{=n}?
, b{n+n}
และb{n=n}?
, และคะแนนเป็น 2 + 3 + 3 + 4 = 12