क्रेज़ी लाइब्रेरियन की अंकगणित की सीमेन्स


18

ठीक है, लाइब्रेरियन ने आपको अपनी छंटनी एल्गोरिदम का उपयोग करके अपनी नौकरी पर धोखा दिया , इसलिए अब आपको दंडित किया जा रहा है। आपको कुछ कोड बनाने का आदेश दिया गया है, ताकि लाइब्रेरियन अपने बिना पढ़े, गणित के शिक्षक की वस्तु को प्रभावित कर सकें। तो यह है कि "सौंपा के रूप में अन्य कर्तव्यों" का मतलब है ...

हर कोई आधार 10 में प्राकृतिक संख्या अनुक्रम से परिचित है, जिसे एन कहा जाता है :

0, 1, 2, 3, 4, 5, 6, ...

उस से, हम अभाज्य संख्या अनुक्रम उत्पन्न कर सकते हैं, चलो इसे P कहते हैं , जैसे कि P में प्रत्येक तत्व के N1 और अर्थात् में दो भाजक हैं । यह क्रम है:

2, 3, 5, 7, 11, 13, ...

ठीक है, अब तक की नियमित दिनचर्या।

एक गंधा समारोह के लाइब्रेरियन सोचा एफ (एक्स, वाई) कि एक नंबर लेता xसे एन शर्त के साथ, 0 <= x <= 9और एक नंबर yसे एन , और आवेषण xमें yहर स्थिति में की दशमलव विस्तार (यानी,, prepending डालने, या जोड़कर xमें y), फिर नए नंबरों के क्रमबद्ध सेट को वापस करता है।
उदाहरण के लिए, एफ (6, 127) में परिणाम होगा

1267, 1276, 1627, 6127

यह अभी भी थोड़े उबाऊ है, हालांकि। लाइब्रेरियन एक नए फ़ंक्शन को निर्दिष्ट करने के बजाय चीजों को थोड़ा और ऊपर मसाला देना चाहता है z -> {p : p in P and F(z,p) subset of P}, आरोही क्रमबद्ध।
उदाहरण के लिए, z (7) होगा

3, 19, 97, 433, 487, 541, ...

क्योंकि 37और 73दोनों प्रमुख हैं, 719 179और 197सभी प्रमुख हैं, आदि।

ध्यान दें कि z (2) खाली है, क्योंकि कोई भी अभिलिखित है जो 2कभी भी प्रधान नहीं होगा। इसी तरह {0,4,5,6,8} के लिए।

आपका कार्य कोड लिखना है जो किसी दिए गए x के लिए अनुक्रम z (x) में पहले 100 नंबर उत्पन्न और आउटपुट करेगा ।

इनपुट

एक एकल पूर्णांक x ऐसा 0 <= x <= 9। इनपुट फ़ंक्शन तर्क, एसटीडीआईएन या समकक्ष के माध्यम से हो सकता है।

उत्पादन

पहले 100 नंबरों का एक क्रम, आपके चयन द्वारा सीमांकित, एसटीडीयूएसटी या समतुल्य, जैसे कि ऊपर वर्णित क्रम (z) को संतुष्ट करता है। यदि z (x) खाली है, जैसा कि {0,2,4,5,6,8} के लिए है, तो Empty Setइसके बजाय शब्दों का आउटपुट होना चाहिए।

प्रतिबंध

  • यह कोड-गोल्फ है, चूंकि आपको इसे एक इंडेक्स कार्ड में स्थानांतरित करने की आवश्यकता होगी, ताकि लाइब्रेरियन गणित शिक्षक को दिखा सके, और आपके हाथ में आसानी से ऐंठन हो।
  • मानक ढील प्रतिबंध लागू होते हैं। लाइब्रेरियन चीटर्स को बर्दाश्त नहीं करता है।

संदर्भ क्रम

x = 1: A069246
x = 3: A215419
x = 7: A215420
x = 9: 91541921

संबंधित: सबसे बड़ा नाजुक प्रधान खोजें / एक विकल्प से सबसे छोटा प्रधान खोजें / सबसे बड़ा प्रधानमंत्री खोजें, जो अंकों के विलोपन के बाद भी प्रमुख है

जवाबों:


5

पायथ, 49 बाइट्स

Python3 और अन्य Pyth उत्तर की तरह, 100 नंबर खोजने का रनटाइम निषेधात्मक है। (परीक्षण सूट 10 देता है)

?}z"1379".f&!tPZ!|FmtPvjzc`Z]dhl`Z*TT3"Empty Set"

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


1
अनुगामी "अनावश्यक, बहुत अच्छा काम है।
फ्राईमई इगेमैन

अनुस्मारक के लिए Thanx। क्योंकि ईओएल अब एक स्ट्रिंग को समाप्त नहीं करता है, मैं बिना तार के बच गया हूं, लेकिन निश्चित रूप से, ईओएफ अभी भी काम करता है
ब्रायन टक

4

पायथन 3, 188 बाइट्स

x=input()
k=1
i=100
if x in"024568":i=print("Empty Set")
while i:k+=1;s=str(k);i-=all(sum(p%d<1for d in range(2,p))<4for p in[k*int(s[:j]+x+s[j:])for j in range(len(s)+1)])and not print(k)

बुरी तरह से गोल्फ, लेकिन यहाँ अब के लिए कुछ है। जाँच करने के बजाय p in P and F(z,p) subset of P, हम जाँचते हैं कि p*fप्रत्येक के लिए एक अर्धवृत्त है f in F(z,p)। संयोजन करें कि परीक्षण के साथ विभाजन के लिए मौलिकता परीक्षण, और आपको एक O(scary)एल्गोरिथ्म मिलता है।


+1 के लिएO(scary)
AdmBorkBork

1
मैं किसी को भी स्थापित करने में अच्छी चाल।
3

3

पर्ल, 124 बाइट्स

$p=prime_iterator;y/1379//or$i=+~print'Empty Set'}while($i<100){$_=&$p;is_prime"$`@F$'"or redo while//g;$i++

निम्न कमांड लाइन विकल्प की आवश्यकता है: -palMntheory=:all16 के रूप में गिना जाता है। स्टड से लिया गया इनपुट।

पर्ल ( प्रग्मा के Math::Prime::Utilसाथ लोड ntheory) के लिए @ दानाज मॉड्यूल का उपयोग करता है । इसे प्राप्त करें:

cpan install Math::Prime::Util
cpan install Math::Prime::Util::GMP

is_prime2 64 से कम के सभी मूल्यों के लिए नियतात्मक है , जो हमारे उद्देश्यों के लिए पर्याप्त है।


नमूना उपयोग

$ echo 2|perl -palMntheory=:all oscary.pl
Empty Set

$ echo 7|perl -palMntheory=:all oscary.pl
3
19
97
433
487
541
691
757
853
1471
.
.
.
718705783
720574573
737773357
745157779
747215167
767717017
768743377
770294977
771778477
774577777

प्रत्याशित रुंटिम्स

x = 1 : 1m 09.2s
x = 3 : 0m 04.2s
x = 7 : 2m 52.5s
x = 9 : 0m 11.5s


1

पायथ, ५ Py

L}bPb|*"Empty Set"}Qj204568T.f&yZ.Amyi++<JjZTdQ>JdThl`Z100

यह परीक्षण सूट केवल पहले 10 नंबरों की गणना करता है क्योंकि बाकी को उत्पन्न करने में बहुत लंबा समय लगता है। ब्रूट प्राणशक्ति और अंकों को सम्मिलित करने के लिए बाध्य करता है। ऐसे बुरे प्रदर्शन को दर्शाता है कि मैं इसे 100 तक नहीं चला पा रहा हूं, इसलिए कृपया मुझे बताएं कि क्या समस्याएँ हैं।

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