นี่เป็นความท้าทายครั้งแรกของฉัน!
พื้นหลัง
Perfect numberเป็นจำนวนเต็มบวกซึ่งเท่ากับผลรวมของตัวหารทั้งหมดยกเว้นตัวเอง
ดังนั้นเป็นจำนวนที่สมบูรณ์แบบตั้งแต่6
ในทางกลับกันไม่ได้เพราะ1 + 2 + 3 = 6
12
1 + 2 + 3 + 4 + 6 = 16 != 12
ไม่ได้เป็นเพราะ
งาน
งานของคุณง่ายเขียนโปรแกรมซึ่งจะn
พิมพ์ข้อความใดข้อความหนึ่งต่อไปนี้:
ฉันเป็นจำนวนที่สมบูรณ์แบบเพราะ
d1 + d2 + ... + dm = s == n
ฉันไม่ได้เป็นจำนวนที่สมบูรณ์แบบเพราะd1 + d2 + ... + dm = s [<>] n
ที่ไหน
d1, ... dm
มีตัวหารทั้งหมดยกเว้นn
คือผลรวมของตัวหารทั้งหมด(อีกครั้งโดยไม่มี) เป็น(ถ้า) หรือ(ถ้า)n
s
d1, ..., dm
n
[<>]
<
s < n
>
s > n
ตัวอย่าง
สำหรับn
การเป็น6
: "ฉันเป็นจำนวนที่สมบูรณ์แบบเพราะ 1 + 2 + 3 = 6 == 6"
สำหรับn
การเป็น12
: "ฉันไม่ได้เป็นจำนวนที่สมบูรณ์แบบเพราะ 1 + 2 + 3 + 4 + 6 = 16> 12"
สำหรับn
การเป็น13
: "ฉันไม่ใช่ตัวเลขที่สมบูรณ์เพราะ 1 = 1 <13"
กฎระเบียบ
n
ไม่ใหญ่กว่ามาตรฐานภาษาของคุณint
คุณ- คุณสามารถอ่าน
n
จากอินพุตมาตรฐานจากอาร์กิวเมนต์บรรทัดคำสั่งหรือจากไฟล์ - ต้องพิมพ์ข้อความเอาต์พุตบนเอาต์พุตมาตรฐานและไม่มีอักขระเพิ่มเติมที่สามารถปรากฏในเอาต์พุต (อาจมีช่องว่างต่อท้ายหรือขึ้นบรรทัดใหม่)
- คุณไม่สามารถใช้ฟังก์ชั่นบิวด์อินหรือห้องสมุดใด ๆ ที่จะแก้ปัญหางาน (หรือส่วนหลัก) สำหรับคุณ ไม่มี
GetDivisors()
หรืออะไรแบบนั้น - ใช้ช่องโหว่มาตรฐานอื่น ๆ ทั้งหมด
ผู้ชนะ
นี่คือโค้ดกอล์ฟที่สั้นที่สุดในหน่วยไบต์ !
=
และ==
ในสมการเดียวกัน? ไม่สมเหตุสมผลเลย มันควรเป็นd1 + d2 + ... + dm = s = n
IMO