โจทย์ทั้งหมด
ง่าย 0 ข้อที่แก้แล้ว อัตราผ่าน 0%

จัดประเภทตัวเลขตามตัวหารของมัน

จัดประเภทจำนวนเต็มบวกว่าเป็น perfect, abundant หรือ deficient

ให้นำตัวหารบวกของ n ที่น้อยกว่า n อย่างเคร่งครัดมารวมกัน หากผลรวมเท่ากับ n ให้จัดเป็น perfect หากผลรวมมากกว่า n ให้จัดเป็น abundant และหากผลรวมน้อยกว่า n ให้จัดเป็น deficient สำหรับเลข 1 ไม่มีตัวหารบวกที่เหมาะสม ดังนั้นผลรวมของตัวหารคือ 0

ให้เขียนฟังก์ชัน perfect_number(n)

อินพุต

n: จำนวนเต็มบวกที่ต้องการจัดประเภท

เอาต์พุต

ให้คืนค่า perfect, abundant หรือ deficient เป็นข้อความตัวพิมพ์เล็ก

เงื่อนไข

1 ≤ n ≤ 1,000,000 ห้ามใช้ค่าเป็นศูนย์หรือค่าติดลบ

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
n = 18

ผลลัพธ์ที่คาดหวัง:
expected = "abundant"
อินพุต:
long long n = 18;

ผลลัพธ์ที่คาดหวัง:
std::string expected = "abundant";
อินพุต:
long n = 18;

ผลลัพธ์ที่คาดหวัง:
string expected = "abundant";

คำอธิบาย

ตัวหารที่เหมาะสมคือ 1, 2, 3, 6 และ 9 ผลรวมคือ 21 ซึ่งมากกว่า 18

ตัวอย่างที่ 2
อินพุต:
n = 28

ผลลัพธ์ที่คาดหวัง:
expected = "perfect"
อินพุต:
long long n = 28;

ผลลัพธ์ที่คาดหวัง:
std::string expected = "perfect";
อินพุต:
long n = 28;

ผลลัพธ์ที่คาดหวัง:
string expected = "perfect";

คำอธิบาย

ผลรวมของตัวหารที่เหมาะสมคือ 1 + 2 + 4 + 7 + 14 = 28 ซึ่งเท่ากับตัวเลขเอง

แหล่งอ้างอิง

โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน

เรียนรู้จากคนอื่น

แนวทางจากชุมชน

ยังไม่มีวิธีทำที่เผยแพร่ ลองแก้โจทย์นี้เพื่อแชร์วิธีแรก