쌍둥이 소수 공식
w(n, 2)w(n+2, 2)w(n, 3)w(n+2, 3)w(n, 5)w(n+2, 5)w(n, 7)w(n+2, 7)w(n, 11)w(n+2, 11)w(n, 13)w(n+2, 13)w(n, 17)w(n+2, 17)w(n, 19)w(n+2, 19)w(n, 23)w(n+2, 23)w(n, 29)w(n+2, 29)w(n, 31)w(n+2, 31)w(n, 37)w(n+2, 37)w(n, 41)w(n+2, 41)w(n, 43)w(n+2, 43)w(n, 47)w(n+2, 47)w(n, 53)w(n+2, 53)w(n, 59)w(n+2, 59)w(n, 61)w(n+2, 61)w(n, 67)w(n+2, 67)w(n, 71)w(n+2, 71)w(n, 73)w(n+2, 73)w(n, 79)w(n+2, 79)w(n, 83)w(n+2, 83)w(n, 89)w(n+2, 89)w(n, 97)w(n+2, 97)w(n, 101)w(n+2, 101)w(n, 103)w(n+2, 103)w(n, 107)w(n+2, 107)w(n, 109)w(n+2, 109)w(n, 113)w(n+2, 113)w(n, 127)w(n+2, 127)w(n, 131)w(n+2, 131)w(n, 137)w(n+2, 137)w(n, 139)w(n+2, 139)w(n, 149)w(n+2, 149)w(n, 151)w(n+2, 151)w(n, 157)w(n+2, 157)w(n, 163)w(n+2, 163)w(n, 167)w(n+2, 167)w(n, 173)w(n+2, 173)w(n, 179)w(n+2, 179)w(n, 181)w(n+2, 181)w(n, 191)w(n+2, 191)w(n, 193)w(n+2, 193)w(n, 197)w(n+2, 197)w(n, 199)w(n+2, 199)w(n, 211)w(n+2, 211)w(n, 223)w(n+2, 223)w(n, 227)w(n+2, 227)w(n, 229)w(n+2, 229)w(n, 233)w(n+2, 233)w(n, 239)w(n+2, 239)w(n, 241)w(n+2, 241)w(n, 251)w(n+2, 251)w(n, 257)w(n+2, 257)w(n, 263)w(n+2, 263)w(n, 269)w(n+2, 269)w(n, 271)w(n+2, 271)w(n, 277)w(n+2, 277)w(n, 281)w(n+2, 281)w(n, 283)w(n+2, 283)w(n, 293)w(n+2, 293)w(n, 307)w(n+2, 307)w(n, 311)w(n+2, 311)w(n, 313)w(n+2, 313)w(n, 317)w(n+2, 317)w(n, 331)w(n+2, 331)w(n, 337)w(n+2, 337)w(n, 347)w(n+2, 347)w(n, 349)w(n+2, 349)w(n, 353)w(n+2, 353)w(n, 359)w(n+2, 359)w(n, 367)w(n+2, 367)w(n, 373)w(n+2, 373)w(n, 379)w(n+2, 379)w(n, 383)w(n+2, 383)w(n, 389)w(n+2, 389)w(n, 397)w(n+2, 397)w(n, 401)w(n+2, 401)w(n, 409)w(n+2, 409)w(n, 419)w(n+2, 419)w(n, 421)w(n+2, 421)w(n, 431)w(n+2, 431)w(n, 433)w(n+2, 433)w(n, 439)w(n+2, 439)w(n, 443)w(n+2, 443)w(n, 449)w(n+2, 449)w(n, 457)w(n+2, 457)w(n, 461)w(n+2, 461)w(n, 463)w(n+2, 463)w(n, 467)w(n+2, 467)w(n, 479)w(n+2, 479)w(n, 487)w(n+2, 487)w(n, 491)w(n+2, 491)w(n, 499)w(n+2, 499)w(n, 503)w(n+2, 503)w(n, 509)w(n+2, 509)w(n, 521)w(n+2, 521)w(n, 523)w(n+2, 523)w(n, 541)w(n+2, 541)w(n, 547)w(n+2, 547)w(n, 557)w(n+2, 557)w(n, 563)w(n+2, 563)w(n, 569)w(n+2, 569)w(n, 571)w(n+2, 571)w(n, 577)w(n+2, 577)w(n, 587)w(n+2, 587)w(n, 593)w(n+2, 593)w(n, 599)w(n+2, 599)w(n, 601)w(n+2, 601)w(n, 607)w(n+2, 607)w(n, 613)w(n+2, 613)w(n, 617)w(n+2, 617)w(n, 619)w(n+2, 619)w(n, 631)w(n+2, 631)w(n, 641)w(n+2, 641)w(n, 643)w(n+2, 643)w(n, 647)w(n+2, 647)w(n, 653)w(n+2, 653)w(n, 659)w(n+2, 659)w(n, 661)w(n+2, 661)w(n, 673)w(n+2, 673)w(n, 677)w(n+2, 677)w(n, 683)w(n+2, 683)w(n, 691)w(n+2, 691)w(n, 701)w(n+2, 701)w(n, 709)w(n+2, 709)w(n, 719)w(n+2, 719)w(n, 727)w(n+2, 727)w(n, 733)w(n+2, 733)w(n, 739)w(n+2, 739)w(n, 743)w(n+2, 743)w(n, 751)w(n+2, 751)w(n, 757)w(n+2, 757)w(n, 761)w(n+2, 761)w(n, 769)w(n+2, 769)w(n, 773)w(n+2, 773)w(n, 787)w(n+2, 787)w(n, 797)w(n+2, 797)w(n, 809)w(n+2, 809)w(n, 811)w(n+2, 811)w(n, 821)w(n+2, 821)w(n, 823)w(n+2, 823)w(n, 827)w(n+2, 827)w(n, 829)w(n+2, 829)w(n, 839)w(n+2, 839)w(n, 853)w(n+2, 853)w(n, 857)w(n+2, 857)w(n, 859)w(n+2, 859)w(n, 863)w(n+2, 863)w(n, 877)w(n+2, 877)w(n, 881)w(n+2, 881)w(n, 883)w(n+2, 883)w(n, 887)w(n+2, 887)w(n, 907)w(n+2, 907)w(n, 911)w(n+2, 911)w(n, 919)w(n+2, 919)w(n, 929)w(n+2, 929)w(n, 937)w(n+2, 937)w(n, 941)w(n+2, 941)w(n, 947)w(n+2, 947)w(n, 953)w(n+2, 953)w(n, 967)w(n+2, 967)w(n, 971)w(n+2, 971)w(n, 977)w(n+2, 977)w(n, 983)w(n+2, 983)w(n, 991)w(n+2, 991)w(n, 997)w(n+2, 997)
=1을 만족하는 (n, n+2)는 1,000,000 이하 쌍둥이 소수이다.
w(n, p) = δ(n, p) + τ([n]_p, 0)
def omega_vec(arr, p):
delta = (arr == p).astype(np.int8)
tau = (arr % p != 0).astype(np.int8)
return delta + tau
def twin_primes(n):
arr = np.arange(n + 1)
one = np.ones(n + 1, dtype=bool)
# √n 이하 소수 동적 수집
limit = int(n**0.5) + 1
small_primes = []
for p in range(2, limit):
if all(p % q != 0 for q in small_primes):
small_primes.append(p)
print(f"√{n} 이하 소수: {small_primes}") # 확인용
s_sum = ""
for i in small_primes:
s_sum += f"w(n, {i})w(n+2, {i})"
print(s_sum)
# 소수 체
for p in small_primes:
one &= (omega_vec(arr, p) > 0)
one[0], one[1] = False, False
# 쌍둥이 소수 판별
twin_mask = one[:-2] & one[2:]
n_vals = np.where(twin_mask)[0]
return [(n, n+2) for n in n_vals]
N = 1_000_000
twin = twin_primes(N)
print(f"{N} 이하 쌍둥이 소수의 개수: {len(twin)}")
print(twin)
신기하다 ㅇㅇ - dc App