자바 10 195 194 184 182 바이트
n->{var L=new java.util.Stack();int i=1,k,x,s,r=0;for(;i++<n;){for(k=1;i%++k>0;);if(k==i)L.add(i);}for(x=L.size(),i=0;i<x;)for(k=i++,s=0;k<x;r+=s==n?1:0)s+=(int)L.get(k++);return r;}
@ceilingcat 덕분에 -1 바이트 . @SaraJ
덕분에 -10 바이트 .
온라인으로 사용해보십시오.
설명:
n->{ // Method with integer as both parameter and return-type
var L=new java.util.Stack();
// List of primes, starting empty
int i=1,k,x,s, // Temp integers
r=0; // Result-counter, starting at 0
for(;i++<n;){ // Loop `i` in the range [2, `n`]
for(k=1; // Set `k` to 1
i%++k>0;); // Inner loop which increases `k` by 1 before every iteration,
// and continues as long as `i` is not divisible by `k`
if(k==i) // If `k` is now still the same as `i`; a.k.a. if `i` is a prime:
L.add(i);} // Add the prime to the List
for(x=L.size(), // Get the amount of primes in the List
i=0;i<x;) // Loop `i` in the range [0, amount_of_primes)
for(s=0, // (Re)set the sum to 0
k=i++;k<x; // Inner loop `k` in the range [`i`, amount_of_primes)
r+=s==n? // After every iteration, if the sum is equal to the input:
1 // Increase the result-counter by 1
: // Else:
0) // Leave the result-counter the same by adding 0
s+=(int)L.get(k++);
// Add the next prime (at index `k`) to the sum
return r;} // And finally return the result-counter
기본적으로 Jelly 또는 05AB1E 답변 과 비슷하며 190 바이트 만 더 있습니다. XD
여기에 각 부분에 대한 비교가 재미를 위해 추가되었으며 Java가 왜 그렇게 장황한 지, 이러한 골프 언어가 강력한 이유를 알 수 있습니다.
- 암시 적으로 입력 : (Jelly : 0 bytes)를 취하십시오 . 암시 적으로 (05AB1E : 0 바이트) ; (자바 10 : 5 바이트)
n->{}
- 범위 내의 소수 목록을 작성하십시오
[2, n]
. (Jelly : 2 bytes) ÆR
; (05AB1E : 2 바이트)ÅP
; (자바 10:95 바이트)var L=new java.util.Stack();int i=1,k,x,s,r=0;for(;i++<n;){for(k=1;i%++k>0;);if(k==i)L.add(i);}
- 모든 연속 하위 목록을 가져옵니다. (Jelly : 1 byte)
Ẇ
; (05AB1E : 1 바이트) Œ
; (자바 10:55 바이트)for(x=L.size(),i=0;i<x;)for(k=i++;k<x;)
및(int)L.get(k++);
- 각 하위 목록을 합산하십시오 : (Jelly : 1 byte)
§
; (05AB1E : 1 바이트) O
; (Java 10 : 9 바이트) ,s
및,s=0
과s+=
- 입력과 같은 것을 계산하십시오 : (Jelly : 1 바이트)
ċ
; (05AB1E : 2 바이트) QO
; (자바 10:15 바이트),r=0
및r+=s==n?1:0
- 결과를 다음과 같이 출력합니다 : (Jelly : 0 bytes) 암시 적으로 ; 암시 적으로 (05AB1E : 0 바이트) ; (자바 10 : 9 바이트)
return r;
2æR
과 동일ÆR