lambda n:sum((n+n%6-3)*n%k<1for k in range(2,4*n))==2
ลองออนไลน์!
พื้นหลัง
จำนวนเต็มทั้งหมดใช้เวลาหนึ่งในรูปแบบดังต่อไปนี้ด้วยจำนวนเต็มk : 6k - 3 , 6k - 2 , 6k - 1 , 6k , 6k + 1 , 6k + 2
ตั้งแต่6k - 2 , 6kและ6k + 2มีทั้งหมดได้และตั้งแต่6k - 3หารด้วย3 , ช่วงเวลาที่ทุกคนยกเว้น2และ3จะต้องอยู่ในรูปแบบ6k - 1หรือ6k + 1 เนื่องจากความแตกต่างของคู่แฝดที่สำคัญคือ2 , มีข้อยกเว้นของ(3, 5)ทุกคู่คู่ที่สำคัญมีของแบบฟอร์ม(6k - 1, 6k + 1)
ให้nอยู่ในรูปแบบ6k ± 1
ดังนั้นถ้า nเป็นส่วนหนึ่งของฝาแฝดคู่นายกรัฐมนตรีและn ≠ 3มันของคู่จะn + n% 6-3
มันทำงานอย่างไร
Python ไม่มีการทดสอบเบื้องต้นในตัว ในขณะที่มีวิธีสั้น ๆ ในการทดสอบหมายเลขเดียวสำหรับ primality การทำเช่นนั้นสำหรับสองหมายเลขจะมีความยาว เราจะไปทำงานกับ divisors แทน
sum((n+n%6-3)*n%k<1for k in range(2,4*n))
นับจำนวนเต็มkในช่วงเวลา[2, 4n)หาร(n + n% 6 - 3) nเท่ากันนั่นคือนับจำนวนตัวหารของ(n + n% 6 - 3) nในช่วง[2 , 4n) เราอ้างว่าการนับนี้เป็น2ถ้าหากว่าnเป็นส่วนหนึ่งของคู่ที่สำคัญคู่เท่านั้น
ถ้าn = 3 (คู่สำคัญ) (n + n% 6-3) n = 3 (3 + 3-3) = 9มีสองตัวหาร ( 3และ9 ) ใน[2, 12)
ถ้าn> 3เป็น twin prime อย่างที่เห็นก่อนหน้านี้m: = n + n% 6 - 3เป็น twin ในกรณีนี้ล้านมีตรงสี่ตัวหาร: 1, m, n, มินนิโซตา
ตั้งแต่n> 3เรามีม> 4ดังนั้น4n <ล้านและตรงสองตัวหาร ( ม.และn ) ตกอยู่ในช่วงเวลา[2 4n)
ถ้าn = 1แล้ว(n + n% 6-3) n = 1 + 1-3 = -1ไม่มีตัวหารใน[2, 4)
ถ้าn = 2แล้ว(n + n% 6-3) n = 2 (2 + 2-3) = 2มีหนึ่งตัวหาร (ตัวเอง) ใน[2, 8)
ถ้าn = 4แล้ว(n + n% 6-3) n = 4 (4 + 4-3) = 20มีสี่ตัวหาร ( 2 , 4 , 5และ10 ) ใน[2, 16)
ถ้าn> 4เป็นเลขคู่ 2 , n / 2และnทั้งหมดหารnและดังนั้น(n + n% 6-3) n เรามีn / 2> 2ตั้งแต่n> 4จึงมีอย่างน้อยสามตัวหารใน[2 4n)
ถ้าn = 9แล้ว(n + n% 6-3) n = 9 (9 + 3-3) = 81มีสามตัวหาร ( 3 , 9และ21 ) ใน[2, 36)
ถ้าn> 9มีหลาย3แล้ว3 , n / 3และnหารทั้งหมดnและดังนั้น(n + n% 6-3) n เรามีn / 3> 3ตั้งแต่n> 9จึงมีอย่างน้อยสามตัวหารใน[2 4n)
สุดท้ายถ้าn = 6k ± 1> 4ไม่ได้เป็นคู่ที่สำคัญทั้งnหรือm: n = n +% 6-3จะต้องเป็นคอมโพสิตและจึงยอมรับตัวหารที่เหมาะสมd> 1
เนื่องจากทั้งn = m + 2หรือm = n + 2และn, M> 4 , นัมเบอร์วัน , ม.และnเป็นที่แตกต่างกันหารของล้าน นอกจากนี้ม. <n + 3 <4nตั้งแต่n> 1ดังนั้นล้านมีอย่างน้อยสามตัวหารใน[2 4n)