n이 포함 된 n 번째 소수 인쇄 ^1

이 질문은 n소수 를 찾는 데있어 비틀어 질 것 입니다.

도전

당신은 하나 개의 입력을하는 프로그램 작성해야 n및 출력 n진수 표현의 진수 표현이 포함되어 일 소수 nsubtring로합니다.

혼란 스러운가? 여기 몇 가지 예가 있어요.

n=1
Primes: 2, 3, 5, 7, 11
                    ^1 first prime that contains a 1
Output: 11

n=2
Primes: 2, 3, 5, 7, 11, 13, 17, 19, 23
        ^1                          ^2 second prime that contains a 2
Output: 23

n=3
Primes: 2, 3, 5, 7, 11, 13, 17, 19, 23
           ^1           ^2          ^3 third prime that contains a 3
Output: 23

n=10
Primes: 2, 3, 5, 7, 11, ..., 97, 101, 103, 107, 109, ..., 997, 1009, 1013, 1019, 1021, 1031, 1033
                                 ^1   ^2   ^3   ^4             ^5    ^6    ^7    ^8    ^9    ^10 tenth prime that contains a 10
Output: 1033

이것은 이므로 가장 낮은 바이트 수가 이깁니다.

혼란스러운 점이 있으면 의견을 남겨주세요.



답변

05AB1E , 8 바이트

암호:

µN¹åNp*½

설명:

µ          # Run this until the counting variable has reached the input value.
 N¹å       # Check if the input number is in the range variable.
    Np     # Check if the range variable is prime.
      *    # Multiply those two numbers (which is basically an AND operator).
       ½   # If true, increment the counting variable.
           # After the loop, the stack is empty and implicitly prints N.

CP-1252 인코딩을 사용합니다 . 온라인으로 사용해보십시오! .


답변

Pyth-11 바이트

e.f&P_Z}`Q`

테스트 스위트 .


답변

파이썬 2, 67 65 62 바이트

f=lambda n,k=0,m=2,p=1:k/n or-~f(n,k+p%m*(`n`in`m`),m+1,p*m*m)

Ideone에서 테스트하십시오 .

작동 원리

우리는 윌슨 정리의 목록을 사용합니다 .

항상 변수 p 는 계승 m-1 의 제곱과 같습니다 .

k <n 인 경우 0k/n 을 산출 하고 f 를 재귀 적으로 호출합니다. m는 증분되고 (P)가 갱신되고, k는 증분 경우에만, m은 포함 된 소수 n이 .

후자의 결과를 가산함으로써 실현 p%m*(`n`in`m`)하는 케이 . m 이 소수 이면 윌슨 정리의 결과에 따라 1을p%m 리턴 하고 그렇지 않으면 0 을 리턴합니다 .

일단 케이 도달 N , 우리는 발견 QN 번째 포함 프라임 N을 .

우리는 확인하는 동안 다음 호출에 있으므로 m = q + 1 입니다. k/n1 을 반환 하고 비트 연산자 -~는 모든 함수 호출에 대해 해당 숫자를 한 번 증가시킵니다. 이 걸리므 Q – 1 호출 F 증분 m 에서 2Q + 1 에 최 호 F는 리턴 1 + Q를 – 1 = Q를 의도한다.


답변

배쉬, 27 바이트

primes 0|grep $1|sed $1q\;d

primes bsdgames에서 온 것입니다.

입력을 명령 행 인수로 사용하여 STDOUT에 출력합니다.


답변


답변

Mathematica, 75 바이트

Nest[NestWhile[b=NextPrime,b@#,!StringContainsQ@@ToString/@{#,a}&]&,1,a=#]&

여전히 골프를 탈 수 있습니다.


답변

자바 194 180 173 171 112 바이트

암호:

a->{int i=1,j,n,r=0;for(j=n=new Integer(a);(r+=++i>=j&(""+j).contains(""+n)?1:0)!=n;j+=j%i==0?i=1:0);return j;}

언 골프 드 :

class P{
    static int i=1,j,n,r;
    public static void main(String[]s) {
        for(
                j=n=new Integer(s[0]); //executes once before first iteration
                (r+=++i>=j&(""+j).contains(""+n)?1:0)!=n; //executes on first and every iteration
                j+=j%i==0?i=1:0 //executes after first and every iteration
           ) {
            ;
        }
        System.out.print(j);
    }
}