คำอธิบายการท้าทาย
สำหรับทุกจำนวนเต็มบวก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ควรทำงาน