สูตรสำเร็จ
ยกตัวอย่างเช่นหมายเลข 300
- ปัจจัยสำคัญของ 300 คือ
[2, 3, 5]
(ตัวเลขเฉพาะที่เป็นปัจจัยของ 300 และนายกรัฐมนตรี) - กำลังสองจำนวนเหล่านั้นจะให้คุณ
[4, 9, 25]
- การรวมรายการนั้นจะทำให้คุณ
4 + 9 + 25 = 38
- สุดท้ายลบผลรวมนั้น (38) จากหมายเลขเดิมของคุณ
300-38 = 262
(นี่คือผลลัพธ์)
อินพุต
ข้อมูลที่คุณป้อนจะเป็นจำนวนเต็มบวกมากกว่า 2 คุณต้องตรวจสอบตัวเลขทั้งหมดตั้งแต่ 2 ถึงค่าอินพุต (รวม) และค้นหาหมายเลขที่ให้ผลลัพธ์มากที่สุดด้วยสูตรด้านบน
เอาท์พุต
ผลลัพธ์ของคุณจะเป็นตัวเลขสองตัวคั่นด้วยช่องว่างเครื่องหมายจุลภาคขึ้นบรรทัดใหม่หรืออะไรก็ตามที่คุณอนุญาตให้ใช้ภาษา สิ่งเหล่านี้สามารถส่งออกไปยังไฟล์ stdout หรือสิ่งที่ภาษาของคุณใช้ เป้าหมายของคุณคือค้นหาตัวเลขในช่วงที่สร้างเอาต์พุตสูงสุดเมื่อเรียกใช้ผ่านสูตรด้านบน หมายเลขแรกที่แสดงควรเป็นหมายเลขเริ่มต้น (เช่น 300) และหมายเลขที่สองควรเป็นผลลัพธ์ที่สูตรที่สร้าง (เช่น 262)
กรณีทดสอบ
Input: 3 Output: 2, -2
Input: 10 Output: 8, 4
Input: 50 Output: 48, 35
Input: 1000 Output: 1000, 971
Input: 9999 Output: 9984, 9802
ทำงานผ่านตัวอย่าง
พิจารณาอินพุต 10 เราต้องเรียกใช้สูตรสำหรับตัวเลขทั้งหมดตั้งแต่ 2-10 (รวม)
Num PrimeFacs PrimeFacs^2 SumPrimeFacs^2 Result
2 [2] [4] 4 -2
3 [3] [9] 9 -6
4 [2] [4] 4 0
5 [5] [25] 25 -20
6 [2, 3] [4, 9] 13 -7
7 [7] [49] 49 -42
8 [2] [4] 4 4
9 [3] [9] 9 0
10 [2, 5] [4, 25] 29 -19
ในขณะที่คุณสามารถเห็นผลลัพธ์ที่ยิ่งใหญ่ที่สุดคือ4
ซึ่งเป็นผลมาจากการป้อนค่า8
ลงในสูตร นั่นหมายความว่าเอาต์พุตสำหรับอินพุตของ10
ควรเป็น8, 4
เกณฑ์การให้คะแนน &
ใช้กฎเริ่มต้นสำหรับอินพุตและเอาต์พุต: เริ่มต้นสำหรับ Code Golf: วิธีการอินพุต / เอาท์พุต
ช่องโหว่มาตรฐานนั้นเป็นสิ่งต้องห้าม: ช่องโหว่ที่ถูกห้ามโดยค่าเริ่มต้นการ
ส่งสามารถเป็นฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
50
: 35, 48
?