플러스 프라임 대 마이너스 프라임 12 MinusPrimes 및 [7,

우리 대부분은 …

모든 소수 p>3는 형태입니다

그러나 특정 범위 의 플러스 프라임 ( 6n+1)은 몇 개이고 마이너스 프라임 ( 6n-1)은 몇 개입니까?

도전

정수 감안할 때 k>5, 얼마나 많은 계산 primes<=k이다 PlusPrimes 얼마나 많은이 MinusPrimes .

위해 k=100우리는이
[5, 11, 17, 23, 29, 41, 47, 53, 59, 71, 83, 89] 12 MinusPrimes

[7, 13, 19, 31, 37, 43, 61, 67, 73, 79, 97] 11 PlusPrimes을

위해 k=149우리는이
[5, 11, 17, 23, 29, 41, 47, 53, 59, 71, 83, 89, 101, 107, 113, 131, 137, 149]
18 MinusPrimes

[7, 13, 19, 31, 37, 43, 61, 67, 73, 79, 97, 103, 109, 127, 139]
15 PlusPrimes을

규칙

코드는 2 개의 정수 를 출력해야합니다 . 하나는 MinusPrimes 용 이고 다른 하나는 PlusPrimes 용 입니다 (원하는 순서를 지정하십시오).
이것은 : 바이트 단위의 최단 답변이 승리합니다!

테스트 사례

입력 -> 출력 [ MinusPrimes , PlusPrimes ]

6->[1,0]
7->[1,1]
86->[11,10]
986->[86,78]
5252->[351,344]
100000->[4806,4784]
4000000->[141696, 141448]


답변

05AB1E , 10 9 바이트

Outgolfer Erik 덕분에 1 바이트 절약

로 출력 [PlusPrimes, MinusPrimes]

LDpÏ6%5Ñ¢

온라인으로 사용해보십시오!
또는 테스트 스위트

설명

L             # push range [1 ... input]
 DpÏ          # keep only primes
    6%        # mod each by 6
      5Ñ      # divisors of 5 [1, 5]
        ¢     # count

답변

MATL , 10 바이트

Zq6\!5lh=s

온라인으로 사용해보십시오! 또는 모든 테스트 사례를 확인하십시오 .

설명

Zq     % Implicitly input k. Push row vector of primes up to k
6\     % Modulo 6, element-wise
!      % Transpose into a column vector
5lh    % Push row vector [5, 1]
=      % Is equal?, element-wise with broadcast
s      % Sum of each column. Implicitly display

답변

파이썬 2 , 77 바이트

Neil 덕분에 -2 바이트

lambda x:[sum(all(n%j for j in range(2,n))for n in range(i,x,6))for i in 7,5]

온라인으로 사용해보십시오!

이전 솔루션, 83 81 79 바이트

Xcoder 덕분에 -1 바이트,
Halvard Hummel 덕분에 -2 바이트

lambda x:map([all(n%i for i in range(2,n))*n%6for n in range(4,x)].count,[5,1])

온라인으로 사용해보십시오!
[MinusPrimes, PlusPrimes]로 출력


답변

젤리 , 7 바이트

s6ÆPSm4

더하기 빼기

온라인으로 사용해보십시오!

작동 원리

s6ÆPSm4  Main link. Argument: n

s6       Split [1, ..., n] into chunks of length 6.
  ÆP     Test all integers for primality.
    S    Sum across columns.
         This counts the primes of the form 6k + c for c = 1, ..., 6.
     m4  Take every 4th element, leaving the counts for 6k + 1 and 6k + 5.

답변

수학, 51 바이트

(s=#;Mod[Prime~Array~PrimePi@s,6]~Count~#&/@{5,1})&

온라인으로 사용해보십시오!

@ngenisis가 4 바이트를 절약하면서 골프를 쳤습니다.

수학, 47 바이트

sPrime~Array~PrimePi@s~Mod~6~Count~#&/@{5,1}

답변

Japt , 15 13 11 바이트

출력 순서는 [+,-]입니다.

õj ò6 yx ë4

그것을 테스트

  • Dennis의 Jelly 솔루션 에서 영감을 얻었 지만 골프 후 항구에 가까워졌습니다.
  • 2 바이트는 올리버에게 감사합니다 ë.

설명

정수의 묵시적 입력 U.

õj

õ1에서 1까지 의 정수 배열 ( )을 생성하고 U각각이 소수 ( j) 인지 확인 하여 부울 배열을 제공합니다.

ò6

배열을 길이가 6 인 하위 배열로 분할하십시오.

yx

( y)를 바꾸고 열을 합산하십시오.

ë4

배열의 모든 4 번째 요소를 가져 와서 내재적으로 출력합니다.


원본, 19 17 16 15 바이트

õ fj
5â £è_%6¥X

그것을 테스트

  • 15를 배열로 나누는 월계수에 휴식을 취한 후 Oliver의 5의 제수를 사용하라는 영감을 얻은 1 바이트 덕분에 1 바이트.

답변

J , 23 바이트

1#.5 1=/6|_1 p:@i.@p:>:

온라인으로 사용해보십시오!

1#.5 1=/6|_1 p:@i.@p:>:   input: y
          _1       p:     number of primes
                     >:   less than y + 1
             p:@i.        prime range from 0 to that number
        6|                get residues modulo 6
   5 1=/                  table of values equal to 5 or 1
1#.                       sum of each (antibase 1)