소수를 생성하는 공식을 구해라!

개시하다


다음 트윗 문제 때문이었군요.동북대학교 입시 문제인 것 같아요.
이 문제에 관해서는 아래와 같이 해답할 수 있을 것 같아서 다음과 같은 내용을 전달하였다.
따라서 f(x)=ax+1(a는 자연수)의 형식일 때
"소수 pf(p)에 대해서도 소수가 있나요?"
내 생각엔"아, 그래?"트위터 근처 댓글입니다.

교실에서 학생의 발견!


학생이 교실에서 그런 말을 했는데,
f(x)=6x+1
나는 이런 함수를 가지고 왔다.처음내 생각에는 이렇다. 그러나 조사해 보았다
f(2)=13
f(3)=19
f(5)=31
f(7)=43
f(11)=67
f(13)=79
f(17)=103
f(2)부터 f(17)까지 모두 소수다.그러나 아쉽게도 다음 f(19)는 115로 소수가 아니다.
트위터를 보면 이 일대에 관심이 많은 사람들도 이야기를 나눴다.

먼저 조사하고 싶어요!


따라서 f(2)~f(19)까지 소수로 변하는 f(x)=ax+1이 있나요?즉, 이것은 그렇게 쉽게 찾을 수 없다는 것이다.그래서 저는 먼저 Mathematica를 찾아보기로 했습니다.이제 Worlfram Cloud를 무료로 사용할 수 있습니다.시대가 좋아졌다.
https://www.wolframcloud.com
For[a=1,a<10000000,a++,n=1;
While[PrimeQ[f[Prime[n]]],n++];
If[n>7,Print["f(x)=",2a,"x+1,","n=",n-1]]]

f(x)=192660x+1은 f(2)~f(19)의 소수!
응, 이 근처는 울프람 클라우드 무료 버전의 경계야. f(23)까지 소수를 찾으려면 타임아웃이야.

Juria Primes。소프트웨어 패키지


그래서 마지막으로 줄리아에서 해봤어요.Primes.jl 괜찮은 것 같아.
http://juliamath.github.io/Primes.jl/v0.3/api.html#Primes.factor
우선 포장에 넣기
import Pkg; Pkg.add("Primes")
using Primes
나중에 조사해.
for i=1:1000000000
    n=1
    while isprime(2*i*prime(n)+1)
        n+=1
    end
    if n>9 
        println("f(x)=",2*i,"x+1,","n=",n-1)
    end
end
f(x)=437286240x+1,n=9
f(x)=861211560x+1,n=9
InterruptException:
중간에 끊겼는데 두 개를 발견했어요.살 시간은 없지만 찾기 전에 몇 분 걸려요.
f(x)=437286240x+1, f(2)부터 f(23)까지
n=1
while isprime(437286240*prime(n)+1)
 println("f(",prime(n),")=",437286240*prime(n)+1)
     n+=1
end
f(2)=874572481
f(3)=1311858721
f(5)=2186431201
f(7)=3061003681
f(11)=4810148641
f(13)=5684721121
f(17)=7433866081
f(19)=8308438561
f(23)=10057583521
네.

좋은 웹페이지 즐겨찾기