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

ผลรวมของจำนวนที่หารด้วยตัวประกอบลงตัว

บวกค่าที่น้อยกว่าขีดจำกัดและหารด้วยตัวประกอบใด ๆ ที่กำหนดได้ลงตัว

พิจารณาจำนวนเต็มบวกที่น้อยกว่าขีดจำกัดแบบไม่รวมขอบ หากค่าหนึ่ง ๆ หารด้วยตัวประกอบที่ไม่เป็นศูนย์อย่างน้อยหนึ่งตัวลงตัว ให้นำค่านั้นมารวมด้วย โดยแต่ละค่าที่นำมารวมให้นับเพียงครั้งเดียว แม้ว่าจะหารด้วยหลายตัวประกอบลงตัวก็ตาม ไม่ต้องสนใจตัวประกอบที่เป็นศูนย์ ตัวอย่างเช่น [3, 5] จะได้โจทย์หาผลรวมของจำนวนที่หารด้วย 3 หรือ 5 ลงตัวแบบที่คุ้นเคย

ให้เขียนฟังก์ชัน sum_of_multiples(limit, factors)

อินพุต

limit: ค่าขอบบน (exclusive upper bound)

factors: ตัวประกอบที่ใช้พิจารณาว่าค่าต่าง ๆ มีสิทธิ์ถูกนำมารวมผลรวม

เอาต์พุต

ให้คืนค่าผลรวมของจำนวนเต็มบวกที่มีสิทธิ์และไม่ซ้ำกัน

เงื่อนไข

0 ≤ limit ≤ 100,000 อาจมีตัวประกอบตั้งแต่ 0 ถึง 20 ตัว แต่ละตัวอยู่ระหว่าง 0 ถึง 100,000 ตัวประกอบซ้ำกันได้

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
limit = 12
factors = [3, 5]

ผลลัพธ์ที่คาดหวัง:
expected = 33
อินพุต:
long long limit = 12;
std::vector<long long> factors = {3, 5};

ผลลัพธ์ที่คาดหวัง:
long long expected = 33;
อินพุต:
long limit = 12;
long[] factors = new long[] {3, 5};

ผลลัพธ์ที่คาดหวัง:
long expected = 33;

คำอธิบาย

ค่าที่นำมารวมคือ 3, 5, 6, 9 และ 10 ผลรวมคือ 33

ตัวอย่างที่ 2
อินพุต:
limit = 10
factors = [2, 4]

ผลลัพธ์ที่คาดหวัง:
expected = 20
อินพุต:
long long limit = 10;
std::vector<long long> factors = {2, 4};

ผลลัพธ์ที่คาดหวัง:
long long expected = 20;
อินพุต:
long limit = 10;
long[] factors = new long[] {2, 4};

ผลลัพธ์ที่คาดหวัง:
long expected = 20;

คำอธิบาย

ให้นำ 2, 4, 6 และ 8 มารวม โดย 4 และ 8 นับเพียงครั้งเดียวแม้ว่าจะหารด้วยทั้งสองตัวประกอบลงตัว

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

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

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

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

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