คำอธิบายการท้าทาย
สำหรับทุกจำนวนเต็มบวกn
มีอยู่เป็นจำนวนมากที่มีรูปแบบของ111...10...000
ที่หารด้วยn
เช่นตัวเลขทศนิยมที่เริ่มต้นด้วยทั้งหมด1
's และสิ้นสุดที่มีทั้งหมด0
ของ นี่เป็นเรื่องง่ายมากที่จะพิสูจน์: ถ้าเราใช้n+1
จำนวนตัวเลขที่แตกต่างกันในรูปของ111...111
(ทั้งหมด1
) จากนั้นอย่างน้อยสองคนจะให้ส่วนที่เหลือเหมือนกันหลังจากการหารด้วยn
(ตามหลักการของนกพิราบ) ความแตกต่างของตัวเลขสองตัวนี้จะหารด้วยn
และจะมีรูปแบบที่ต้องการ www.games501.com ฟรีเป้าหมายของคุณคือการเขียนโปรแกรมที่พบหมายเลขนี้
คำอธิบายอินพุต
จำนวนเต็มบวก
คำอธิบายผลลัพธ์
ตัวเลขp
ในรูปแบบของ111...10...000
เช่นนั้นp ≡ 0 (mod n)
เช่นว่าหากคุณพบมากกว่าหนึ่ง - แสดงใด ๆ ของพวกเขา (ไม่จำเป็นต้องเล็กที่สุด)
หมายเหตุ
โปรแกรมของคุณจะต้องให้คำตอบในเวลาที่เหมาะสม ซึ่งหมายความว่าไม่อนุญาตให้ใช้กำลังเดรัจฉาน:
p = 0
while (p != 11..10.00 and p % n != 0)
p++
ไม่เป็นอย่างนี้:
do
p = random_int()
while (p != 11..10.00 and p % n != 0)
11..10..00
อนุญาตให้ใช้การวนซ้ำในรูปแบบของ
โปรแกรมของคุณไม่จำเป็นต้องจัดการกับอินพุตขนาดใหญ่โดยพลการ - ขอบเขตบนคือสิ่งที่ขอบเขตบนของภาษาของคุณคือ
ตัวอย่างผลลัพธ์
2: 10
3: 1110
12: 11100
49: 1111111111111111111111111111111111111111110
102: 1111111111111111111111111111111111111111111111110
1
และอย่างน้อยหนึ่งอย่าง0
อื่น0
เป็นวิธีการแก้ปัญหาสำหรับการป้อนข้อมูลใด ๆ (จะเป็นการดีที่จะชี้แจงเรื่องนี้)
1
ควรทำงาน