นี่เป็นความท้าทายครั้งแรกของฉัน!
พื้นหลัง
Perfect numberเป็นจำนวนเต็มบวกซึ่งเท่ากับผลรวมของตัวหารทั้งหมดยกเว้นตัวเอง
ดังนั้นเป็นจำนวนที่สมบูรณ์แบบตั้งแต่6
ในทางกลับกันไม่ได้เพราะ1 + 2 + 3 = 6121 + 2 + 3 + 4 + 6 = 16 != 12ไม่ได้เป็นเพราะ
งาน
งานของคุณง่ายเขียนโปรแกรมซึ่งจะnพิมพ์ข้อความใดข้อความหนึ่งต่อไปนี้:
ฉันเป็นจำนวนที่สมบูรณ์แบบเพราะ
d1 + d2 + ... + dm = s == n
ฉันไม่ได้เป็นจำนวนที่สมบูรณ์แบบเพราะd1 + d2 + ... + dm = s [<>] n
ที่ไหน
d1, ... dmมีตัวหารทั้งหมดยกเว้นn คือผลรวมของตัวหารทั้งหมด(อีกครั้งโดยไม่มี) เป็น(ถ้า) หรือ(ถ้า)n
sd1, ..., dmn
[<>]<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 = nIMO