15
หารด้วย 1000003? ง่ายเพียงแค่คูณตัวเลขสุดท้ายด้วย 300001 และเพิ่ม!
กำหนดที่สำคัญPมากกว่า10โปรแกรมหรือการทำงานของคุณจะต้องคิดออกกฎหารของxกำหนดเป็นจำนวนเต็มกับค่าสัมบูรณ์ที่เล็กที่สุดที่ทำให้หลายนายกเดิมเมื่อคูณด้วยหลักสุดท้ายของนายกและเพิ่มในส่วนที่เหลือของเดิม สำคัญ ตัวอย่าง ได้รับการป้อนข้อมูล31ที่เป็นตัวเลขหลักสุดท้ายและส่วนที่เหลือของจำนวน1 3ดังนั้นโปรแกรมของคุณจะต้องพบกับจำนวนเต็มxกับค่าสัมบูรณ์ขั้นต่ำดังกล่าวว่ามีหลาย1*x + 3 31ในกรณีนี้การทำงานเพื่อให้โปรแกรมหรือฟังก์ชั่นจะกลับมาx=-3-3 ได้รับการป้อนข้อมูล1000003ที่เป็นตัวเลขหลักสุดท้ายและส่วนที่เหลือของจำนวน3 100000ดังนั้นโปรแกรมของคุณจะพบx=300001เพราะสิ่ง3*300001+100000 = 1000003ที่เป็นจำนวน1000003มาก พื้นหลังทางคณิตศาสตร์ ค่าของxสามารถใช้เป็นการทดสอบการหารได้ หากตัวเลขNหารด้วยPแล้วการเพิ่มจำนวนxหลักสุดท้ายของNส่วนที่เหลือNจะให้ผลคูณของจำนวนPและถ้าหากNหารด้วยPในตอนแรก สำหรับการP=11ที่เราได้รับx=-1ซึ่งจะเทียบเท่ากับกฎหารที่รู้จักกันดีสำหรับ11: หมายเลขคือหารด้วยความแตกต่างสลับหลักของมันคือการหารด้วย1111 กฎระเบียบ เอาต์พุตอาจอยู่ในรูปแบบใด ๆ ที่เข้ารหัสทั้งสัญญาณและมูลค่าของเอาต์พุตอย่างชัดเจน อินพุตที่สำคัญจะอยู่ระหว่าง 10 และ 2 ^ 30 คุณไม่จำเป็นต้องจัดการถ้าอินพุตไม่ใช่ไพร์มหรือไม่อยู่ในช่วง คุณไม่จำเป็นต้องจัดการหากทั้งคู่xและ-xเป็นผลลัพธ์ที่ถูกต้อง (ไม่ควรเกิดขึ้น) อนุญาตให้ใช้กำลังแบบเดรัจฉาน แต่ได้รับการยอมรับในการสร้างสรรค์โซลูชั่นมากขึ้น นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดในแต่ละภาษาชนะ! อย่าปล่อยให้คำตอบในภาษากอล์ฟกีดกันคุณจากการโพสต์ในภาษาอื่น ๆ กรณีทดสอบ Input Output 11 -1 13 4 17 -5 19 2 23 7 …