โจทย์
ดูต้นฉบับ (ภาษาอังกฤษ)ให้นำตัวหารบวกของ n ที่น้อยกว่า n อย่างเคร่งครัดมารวมกัน หากผลรวมเท่ากับ n ให้จัดเป็น perfect หากผลรวมมากกว่า n ให้จัดเป็น abundant และหากผลรวมน้อยกว่า n ให้จัดเป็น deficient สำหรับเลข 1 ไม่มีตัวหารบวกที่เหมาะสม ดังนั้นผลรวมของตัวหารคือ 0
ให้เขียนฟังก์ชัน perfect_number(n)
อินพุต
n: จำนวนเต็มบวกที่ต้องการจัดประเภท
เอาต์พุต
ให้คืนค่า perfect, abundant หรือ deficient เป็นข้อความตัวพิมพ์เล็ก
เงื่อนไข
1 ≤ n ≤ 1,000,000 ห้ามใช้ค่าเป็นศูนย์หรือค่าติดลบ
ตัวอย่าง
อินพุต:
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
อินพุต:
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 กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน