जावा 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;}
-1 बाइट @ceilingcat की बदौलत ।
-10 बाइट्स @SaraJ की बदौलत ।
इसे ऑनलाइन आज़माएं।
स्पष्टीकरण:
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
यह मूल रूप से जेली या 05AB1E के उत्तर के समान है, बस 190 बाइट्स अधिक है। XD
यहां प्रत्येक भाग के लिए एक तुलना है, बस मज़े के लिए जोड़ा गया है (और यह देखने के लिए कि जावा इतना क्रियात्मक क्यों है, और ये गोल्फ भाषाएँ इतनी शक्तिशाली हैं):
- इनपुट लें: (जेली: 0 बाइट्स) अंतर्निहित रूप से ; (05AB1E: 0 बाइट्स) स्पष्ट रूप से ; (जावा 10: 5 बाइट्स)
n->{}
- रेंज में primes की एक सूची बनाएँ
[2, n]
: (जेली: 2 बाइट्स) Æ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);}
- सभी निरंतर उप-सूचियां प्राप्त करें: (जेली: 1 बाइट)
Ẇ
; (05AB1E: 1 बाइट) Œ
; (जावा 10: 55 बाइट्स) for(x=L.size(),i=0;i<x;)for(k=i++;k<x;)
और(int)L.get(k++);
- प्रत्येक उप-सूची का योग: (जेली: 1 बाइट)
§
; (05AB1E: 1 बाइट) O
; (जावा 10: 9 बाइट्स) ,s
और ,s=0
औरs+=
- इनपुट के बराबर गणना करें: (जेली: 1 बाइट)
ċ
; (05AB1E: 2 बाइट्स) QO
; (जावा 10: 15 बाइट्स) ,r=0
औरr+=s==n?1:0
- परिणाम का परिणाम: (जेली: 0 बाइट्स) स्पष्ट रूप से ; (05AB1E: 0 बाइट्स) स्पष्ट रूप से ; (जावा 10: 9 बाइट्स)
return r;
2æR
के रूप में ही हैÆR