प्रत्यारोपित, primes, ओह मेरी!


15

कार्य सरल है: आपका प्रोग्राम एक पूर्णांक को एक इनपुट के रूप में पढ़ता है, और प्रिंट करता है कि यह एक प्रमुख है या नहीं। आप "हां / नहीं", "सही / गलत" या ऐसी किसी भी चीज को प्रिंट कर सकते हैं जो स्पष्ट रूप से परिणाम की पहचान करती है।

चुनौती है, कोड को अपनी पंक्तियों और स्तंभों के साथ काम करना होगा।

स्पष्ट समाधान (कम से कम "सरल" समाधान को टिप्पणियों के उपयोग के साथ लंबवत चार-बाय-चार से बाहर करने के लिए), मीट्रिक सामान्य कोड-गोल्फ से थोड़ा अलग है:

क्योंकि इस चुनौती में प्रारूपण बहुत महत्वपूर्ण है , कोड आकार को उस छोटी आयत के क्षेत्र में मापा जाता है, जिसमें कोड फिट बैठता है। दूसरे शब्दों में, व्हॉट्सएप गिनती करता है, और लाइनें समान लंबाई की होनी चाहिए (आप नहीं करते हैं) जब आप समाधान पोस्ट करते हैं तो यह वास्तव में करना है, सरलता के लिए)। उदाहरण के लिए

int main()   
{            
    return 0;
}            

4 * 13 = 52 का आकार होगा, (और जाहिर है कि यह दो मानदंडों में से किसी पर भी फिट नहीं है: प्राइम डिटेक्शन और ट्रांसपोज़र।)

सबसे छोटा आकार जीतता है।

आप किसी भी भाषा, और किसी भी लाइब्रेरी फ़ंक्शन का उपयोग कर सकते हैं, सिवाय इसके कि उस फ़ंक्शन का एकमात्र उद्देश्य प्रिम्स को खोजना, उत्पन्न करना या उसका पता लगाना है।

संपादित करें:

जबकि विजेता शायद गोल्फस्क्रिप्ट समाधान होगा, मैं सर्वश्रेष्ठ सी या सी ++ समाधान के लिए 50 अंक का इनाम दूंगा!


आपकी आयत मीट्रिक स्पष्ट समाधान को हतोत्साहित करने में विफल हो जाती है - बेहतर होगा कि आप सबसे लंबे समय तक किनारे पर ले जाएं। हालाँकि, यह स्कोर 4 होने के जीएस उत्तर को कम कर देगा
बूथ

तुम सही हो। अगली प्रत्यारोपित समस्या में एक अलग मीट्रिक और निषिद्ध सममित समाधान होना चाहिए। हालाँकि मुझे लगता है कि तब भी कोई ऐसा व्यक्ति होगा जो नियमों को दरकिनार करता है या कम से कम एक ऐसा हल खोजता है जो नियमों की रचना करते समय क्यूए उम्मीद नहीं कर रहा था।
3

जवाबों:


7

गोल्फस्क्रिप्ट, 13 × 1

~.,2>{1$\%!}?

गोल्फस्क्रिप्ट फिर से हमला!

यदि यह अभाज्य है तो इनपुट को दोहराता है, अन्यथा इनपुट को उसके सबसे छोटे समुचित भाजक के साथ जोड़ देता है। हां, मुझे पता है कि "कुछ भी जो स्पष्ट रूप से परिणाम की पहचान करता है" की परिभाषा को खींच रहा है, लेकिन कुछ भी कट्टरता से करने पर कुछ अतिरिक्त वर्ण खर्च होंगे। यदि आप अच्छे आउटपुट चाहते हैं, तो तीन वर्णों ;]!को कोड की पैदावार के 1लिए primes और 0समग्र संख्या के लिए जोड़ दें ।

एल्गोरिथ्म वास्तव में अक्षम है, 2 से n .1 तक सिर्फ ब्रूट फोर्स ट्रायल डिवीजन । अधिकांश GolfScript ऑपरेटर केवल एकल वर्ण हैं, इसलिए यह कोड केवल ट्रांसपोज़्ड के रूप में काम करता है। हालांकि, असाइनमेंट ऑपरेटर :अपने और अपने लक्ष्य के बीच व्हाट्सएप की अनुमति नहीं देता है, इसलिए मुझे यह पूरी तरह से चर के बिना करना था।


राइट "कुछ भी कट्टरता कुछ अतिरिक्त पात्रों की लागत होगी" - आप केवल 2 के लिए एक गोल्फस्क्रिप्ट शैली बूलियन प्राप्त कर सकते हैं
पीटर टेलर

@Peter: मेरा मतलब है कि मेरे ऊपर जैसा कुछ है, केवल उसके बिना !? या आपके मन में कुछ कट्टर था?
इल्मरी करोनें

1
मैं )इससे पहले सोच रहा था ,कि यह हमेशा एक भाजक और =अंत में पाता है ।
पीटर टेलर

:न्यूलाइन के बाद, न्यूलाइन कैरेक्टर को असाइन करता है - इसलिए यह नहीं है कि
व्हॉट्सएप

@gnibbler: तकनीकी रूप से, हम दोनों सही हैं। अपने और अपने लक्ष्य के बीच :व्हाट्सएप, या कुछ और की अनुमति नहीं देता है : जो कुछ भी तुरंत इसका अनुसरण करता है, चाहे व्हाट्सएप या कोई अन्य टोकन (हां, यहां तक ​​कि संख्या, तार या कोड ब्लॉक), जिसे सौंपा गया है। हालांकि, व्हाट्सएप वही है जो आधिकारिक दस्तावेज विशेष रूप से और अच्छे कारण के बारे में चेतावनी देता है - क्योंकि अधिकांश अन्य स्थानों पर, गोल्फस्क्रिप्ट में टोकन के बीच व्हाट्सएप को जोड़ने से कुछ भी नहीं होता है (सामान्य रूप से, जब तक कि इसे सौंपा नहीं जाता ...)।
इल्मरी करोनन

21

सी, 2 * 70 2 * 60

प्रिंट के yलिए प्रिंट , अन्यथा कुछ भी नहीं।
EDIT : 10 वर्णों को बचाने के लिए परिवर्तित कोड। पैरामीटर्स के बिना चलाया जाना चाहिए (ऐसा m=1)।

main(m,n){for(scanf("%d",&n);n%++m&&n>1;);n-m||puts("y");}/*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ 

ट्रांसपोज़ेशन को संभालने के लिए विधि काफी सामान्य है, और इसे किसी भी कार्यक्रम में लागू किया जा सकता है।
यह इसे परिवर्तित करने पर आधारित है:

abcd/*
\\\\*/

इसके लिए:

a\
b\
c\
d\
/*
*/

और दोनों का सीधा सा मतलब है abcd


वाह, लाइन के संयोजन का चतुर दुरुपयोग :)
vsz

2
यह एक गोल्फ / पहेली साइट है। दुरुपयोग जैसी कोई बात नहीं है।
बूंदी

2
@boothby, मुझे लगता है कि वह दुरुपयोग का मतलब है। लेकिन मैं तारीफ के साथ बहस नहीं करता।
20

14

सी - 13x13

स्टड से इनपुट पढ़ता है और 1प्राइम के लिए प्रिंट करता है और प्राइम के 0लिए नहीं।

////m(i;(a=)<
////aans")a;2
//:Di)tc%;;p)
//O n{ adfau+
main//bn"o%t4
(a){///f,r-c8
int b///&(-h)
;scanf///bba;
("%d",&///;r}
a);for(b///( 
=a;a%--b;//( 
);putchar((b 
<2)+48);}    

संपादित करें: अब gcc और क्लैंग के साथ संकलन, अन्य संकलक का परीक्षण नहीं किया गया


12

सी, 12x12 वर्ण

एक ही कोड के आधार पर मेरे दूसरे उत्तर के विपरीत एक द्वि-आयामी समाधान (और इसे पसंद करते हैं, yप्राइम के लिए प्रिंट करता है, समग्र के लिए कुछ भी नहीं)।
संरचना क्वासिमोडो के उत्तर के समान है , लेकिन मेरा कोड कम है, और मुझे लगता है कि मेरी कॉम्पट का उपयोग थोड़ा अधिक कुशल है, इसलिए मैं 12x12 फिट कर सकता हूं।

////m()s";np
////am{c%n>u
////i,fad%1t
////nnon"+;s
main//rf,+)(
(m,n//((&m;"
){for(//n&ny
scanf(//)&-"
"%d",&n)//m)
;n%++m&&//|;
n>1;);n-m|| 
puts("y"); }

7

पर्ल, 14 x 14

मुझे लगता है कि मैं इसे लटका रहा हूं। कमांड लाइन तर्क, आउटपुट 0या के रूप में संख्या निर्दिष्ट करें 1। शायद सुधार के लिए अधिक जगह है।

$   n=pop;$p|=
 !  ($n%$_)for
  2 ..$n/2;   
   print!$p+m~
n(.r          
=$.i          
pn$n          
o%nt          
p$/!          
;_2$          
$);p          
pf +          
|o m          
=r ~          

3

क्यू

एक सममित, चरित्र अक्षम समाधान के लिए अपमानजनक टिप्पणियां।

/{/////////////////////////////////
{(~)any 0=mod[x;2+(!)x-2]}"I"$(0:)0
/~
/)
/a
/n
/y
/ 
/0
/=
/m
/o
/d
/[
/x
/;
/2
/+
/(
/!
/)
/x
/-
/2
/]
/}
/"
/I
/"
/$
/(
/0
/:
/)
/0

STDIN से इनपुट लेता है, एक बूलियन देता है।


में नोटिस किया sqrtगया। जब कोड-गोल्फ में अपराधों की तलाश होती है, तो आमतौर पर यह (बेकार) लाभप्रद होता है कि sqrt n पर रुकने के बजाय n तक सभी तरह से विभाजित करें।
gnibbler

बहुत सही है, धन्यवाद। मुझे अभी तक प्रयास करने और बेहतर स्कोर प्राप्त करने का मौका नहीं मिला है।
स्कीव

आपको अपने उत्तर में एक अंक शामिल करना चाहिए
FlipTack

2

जेली , 2x2 वर्ग

PÆ
ÆP

इसे ऑनलाइन आज़माएं!

मुझे लगता है कि मेरे पास ट्रांसपोज़ेशन का हिस्सा सही है, और यदि हां, तो इसका ट्रांसपोज़्ड संस्करण है

PÆ
ÆP

इसे ऑनलाइन आज़माएं!

(जो एक ही कोड है)


4
यह अमान्य है: " आप किसी भी भाषा, और किसी भी लाइब्रेरी फ़ंक्शन का उपयोग कर सकते हैं, सिवाय इसके कि यदि उस फ़ंक्शन का एकमात्र उद्देश्य
प्रिम्स

1

05AB1E , 1x5 1x3 ( 5 3 बाइट्स )

यह एक बड़ा कार्यक्रम नहीं है; प्राइम चेक (प्राइम बिलिन का उपयोग किए बिना) से निपटने के लिए प्रत्येक पंक्ति एक अलग वैकल्पिक कार्यक्रम है।

ÑPQ
ÒgΘ
ÒQP
ÕαΘ
fQO
fs¢
f`Q

-2 बाइट्स ग्रिमी के लिए धन्यवाद ।

05AB1E में लाइनों के बीच के व्हाट्सएप नंबर नहीं हैं, और चूंकि मैं केवल 1-बाइट कमांड का उपयोग करता हूं, यह ट्रांसपोज़िंग के बाद ठीक काम करता है।

क्रमशः सत्य / असत्य के लिए आउटपुट 1/ 0

पहले ऑनलाइन प्रयास करें या उन सभी के लिए कुछ और परीक्षण मामलों को सत्यापित करें (eval buildin के साथ .V)
ट्रांसपोज़्ड: पहले एक ऑनलाइन प्रयास करें

स्पष्टीकरण:

Ñ    # Get a list of all divisors of the (implicit) input-integer
     # (which would be only 1 and the integer itself for primes)
 P   # Take the product of that list
  Q  # And check if it's equal to the (implicit) input-integer

Ò    # Get a list of all prime factors of the (implicit) input-integer 
 g   # Get the amount of those prime factors by taking the length of the list
  Θ  # Check if that's equal to 1 (so only itself is a prime factor)

Ò    # Get a list of all prime factors of the (implicit) input-integer including duplicates
 Q   # Check for each if it's equal to the (implicit) input-integer
     # (1 if truthy; 0 if falsey)
  P  # Take the product of those checks (resulting in either 1 or 0 as well)

Õ    # Get the Euler totient of the (implicit) input-integer
 α   # Take the absolute difference with the (implicit) input-integer
  Θ  # Check if that's equal to 1

f    # Get a list of all prime factors of the (implicit) input-integer without duplicates
 Q   # Check for each if it's equal to the (implicit) input-integer
  O  # And take the sum of that (resulting in either 1 or 0)

f    # Get a list of all prime factors of the (implicit) input-integer without duplicates
 s   # Swap to get the (implicit) input-integer
  ¢  # And count how many time it occurs in the list

f    # Get a list of all prime factors of the (implicit) input-integer without duplicates
 `   # Dump all the content of this list onto the stack
  Q  # Check if the top two values are equal, or if only a single value is present, it will
     # use the (implicit) input-integer as second value

     # For all these program the same applies at the end:
     # (implicitly output the result with trailing newline)

नोट: यदि केवल एक truthy / falsey मूल्य वैध है, और यह आवश्यक नहीं अलग हो गया है करता है, या तो Ògया Õαके बाद से ही, मान्य 2-byters के रूप में इस्तेमाल किया जा सकता 105AB1E में truthy है, और बाकी सब कुछ falsey है: दोनों की कोशिश करो उन्हें कुछ परीक्षण मामलों के लिए

यदि बिल्डिंस की अनुमति दी गई थी, तो एक ही pपर्याप्त होगा: इसे ऑनलाइन आज़माएं या कुछ और परीक्षण मामलों को सत्यापित करें


1
ÑPQया ÒgΘया ÒQP3 बाइट्स के लिए। ( Ñऔर Òदोनों के पास "खोजने, उत्पन्न करने, या पता लगाने के अलावा अन्य उद्देश्य" हैं, इसलिए वे मेरे पढ़ने से प्रतिबंध में शामिल नहीं हैं)।
ग्रिममी

1
अधिक 3-byters: ÕαΘ, fQO, fs¢,f`Q
ग्रिमी

@Grimy आह, मैं विश्वास नहीं कर सकता कि मैंने डिवाइडर या प्राइम फैक्टर बिल्डिंस के बारे में नहीं सोचा था .. मैंने बहुत जल्दी जवाब दिया। के बारे में पता नहीं था Õα, हालांकि! यह एक बहुत अच्छा है।
केविन क्रूज़सेन

0

रूनिक एनकाउंटर , 7 × 1

v̀i'PA@

इसे ऑनलाइन आज़माएं!

रूनिक को स्रोत पुनर्व्यवस्था पर आपके विनम्र प्रयासों की परवाह नहीं है! प्रतिबिंब संशोधक और प्रवेश बिंदु के लिए स्रोत ट्रांसपोज़्ड लागत +3 बाइट्स (+2 आयत चौड़ाई) होने के बाद भी कामकाज की आवश्यकता के अनुरूप।

प्रत्यारोपित या प्रत्यारोपित, लेकिन अपने माता-पिता से जुड़े संयोजन चरित्र को छोड़कर





0

एपीएल (डायलॉग यूनिकोड) , 10x11

{⍵∊∘.×⍨1↓⍳⍵          
           
           
 .          
 ×          
           
 1          
           
           
          }

इसे ऑनलाइन आज़माएं!

विनिर्देशों के अनुपालन के लिए फ़ंक्शन को ठीक किया। धन्यवाद @ एड-सिर के लिए।

रिटर्न falsy के लिए truthy के लिए 0, 1

किस तरह

{⍵∊∘.×⍨1↓⍳⍵  Dfn. everything below this is a noop up until closing the brace
         ⍳⍵  Range [1..arg]
       1    Dropping the first element (yields [2..arg])
   ∘.×⍨      Multiplication table for each element in the vector
 ⍵∊          Check if the argument is in the table.

प्रत्यारोपित संस्करण बिल्कुल वही है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.