แบ่งตัวเลขสองตัวเป็นแฟคทอเรียล หากพวกเขาแบ่งปันใด ๆ ส่งคืนค่าความเท็จ มิฉะนั้นส่งคืนค่าความจริง (ได้รับแรงบันดาลใจจากคำถามล่าสุดนี้ )
กล่าวอีกนัยหนึ่งให้เขียนหมายเลขอินพุตแต่ละตัวเป็นผลรวมของแฟคทอเรียล (ของจำนวนเต็มบวก) ด้วยวิธีที่เป็นไปได้ที่เป็นไปได้มากที่สุด ส่งกลับค่าความจริงหากไม่มีแฟคทอเรียลปรากฏขึ้นในการแทนทั้งคู่
ตัวอย่าง
ให้ 20 และ 49:
20 = 3! + 3! + 3! + 2!
49 = 4! + 4! + 1!
ไม่มีแฟคทอเรียลปรากฏขึ้นในการเป็นตัวแทนทั้งสองดังนั้นโปรดส่งคืนค่าความจริง
รับ 32 และ 132:
132 = 5! + 3! + 3!
32 = 4! + 3! + 2!
3! ปรากฏในการรับรองทั้งสองดังนั้นส่งคืนค่าความผิดพลาด
I / O
input และ output สามารถผ่านวิธีมาตรฐานใด ๆ
ข้อมูลที่ป้อนจะเป็นจำนวนเต็มสองจำนวนที่ไม่ใช่ค่าลบเสมอ ไม่ จำกัด ขอบเขตบนของจำนวนเต็มเหล่านี้นอกเหนือจากภาษาที่คุณต้องการ
เอาท์พุทควรจะเป็นtruthy หรือ falsey ค่า ค่าเหล่านี้ไม่จำเป็นต้องสอดคล้องกันสำหรับอินพุตที่แตกต่างกันตราบใดที่เอาต์พุตทุกอย่างถูกต้องตามความเป็นจริง / เท็จ
กรณีทดสอบ
หากอินพุตหนึ่ง0
คำตอบจะเป็นจริงเสมอ กรณีทดสอบจริงอื่น ๆ :
{6, 3}, {4, 61}, {73, 2}, {12, 1}, {240, 2}, {5, 264}, {2, 91}, {673, 18},
{3, 12}, {72, 10}, {121, 26}, {127, 746}
หากทั้งสองอินพุทเป็นจำนวนเต็มคี่หรือถ้าทั้งสองอินพุทเป็นจำนวนเต็มบวกเหมือนกันเอาต์พุตจะเป็นเท็จเสมอ กรณีทดสอบอื่น ๆ :
{8, 5}, {7, 5}, {27, 47}, {53, 11}, {13, 123}, {75, 77}, {163, 160}, {148, 53},
{225, 178}, {285, 169}, {39, 51}, {207, 334}, {153, 21}, {390, 128}, {506, 584},
{626, 370}, {819, 354}
นี่คือโค้ดกอล์ฟซึ่งมีจำนวนน้อยที่สุดที่จะชนะ!