काफी बड़ी संख्या में प्राइम जनरेटिंग फंक्शन हैं। बहुत अधिक उन सभी का निर्माण किया जाता है और वे एराटोस्थनीज की छलनी पर आधारित होते हैं, मोबियस फ़ंक्शन या विल्सन की प्रमेय और व्यवहार में गणना करने के लिए आम तौर पर अलग-अलग हैं। लेकिन जनरेटर भी हैं, जिनकी संरचना बहुत आसान है और दुर्घटना से पाए गए थे।
2003 में स्टीफन वोल्फ्राम ने NKS समर स्कूल में एक लाइव कंप्यूटर प्रयोग में नेस्टेड पुनरावृत्ति समीकरणों के एक वर्ग की खोज की। मैथ्यू फ्रैंक के आसपास के लोगों के एक समूह ने अतिरिक्त प्रयोगों के साथ पालन किया और बस पुनरावृत्ति की एक दिलचस्प संपत्ति की खोज की
a(n) = a(n-1) + gcd(n,a(n-1))
के प्रारंभ मूल्य के साथ a(1) = 7
। अंतर a(n) - a(n-1) = gcd(n,a(n-1))
हमेशा 1 या एक प्रधान लगता था। पहले कुछ अंतर हैं ( OEIS A132199 ):
1, 1, 1, 5, 3, 1, 1, 1, 1, 11, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 47, 3, 1, 5, 3, ...
यदि हम केवल 1s को छोड़ देते हैं तो हमें निम्नलिखित अनुक्रम ( OEIS A137613 ) मिलता है:
5, 3, 11, 3, 23, 3, 47, 3, 5, 3, 101, 3, 7, 11, 3, 13, 233, 3, 467, 3, 5, 3,
941, 3, 7, 1889, 3, 3779, 3, 7559, 3, 13, 15131, 3, 53, 3, 7, 30323, 3, ...
एरिक एस रोलैंड ने कुछ साल बाद इस सूची में प्रत्येक तत्व की प्रधानता साबित की। जैसा कि आप देख सकते हैं, प्राइम्स मिश्रित होते हैं और उनमें से कुछ कई बार दिखाई देते हैं। यह भी साबित हो गया है, कि इस क्रम में असीम रूप से कई अलग-अलग अपराध शामिल हैं। इसके अलावा यह अनुमान लगाया गया है, कि सभी विषम प्रमेय दिखाई देते हैं।
क्योंकि इस प्राइम जनरेटर का निर्माण नहीं किया गया था, लेकिन बस दुर्घटना के कारण पाया गया, प्राइम जनरेटर को "स्वाभाविक रूप से होने वाला" कहा जाता है। लेकिन ध्यान दें कि व्यवहार में यह जनरेटर भी गणना करने के लिए काफी प्रभावी है। जैसा कि यह पता चला है, एक प्राइम पी (p–3)/2
लगातार 1 एस के बाद ही दिखाई देता है । फिर भी इस प्रमुख जनरेटर को लागू करना आपका काम होगा।
चुनौती:
एक फ़ंक्शन या एक प्रोग्राम लिखें n
जो अनुक्रम के पहले तत्वों A137613
(1s के बिना अनुक्रम) को प्रिंट करता है । आप n >= 0
STDIN, कमांड-लाइन तर्क, प्रॉम्प्ट या फ़ंक्शन तर्क के माध्यम से इनपुट नंबर पढ़ सकते हैं । n
किसी भी पठनीय प्रारूप में पहले तत्वों को STDOUT में आउटपुट करें , या इन मानों के साथ एक सरणी या सूची लौटाएं।
यह कोड-गोल्फ है। इसलिए सबसे छोटा कोड जीतता है।
लीडरबोर्ड:
यहां एक नियमित लीडरबोर्ड और भाषा के अनुसार विजेताओं का अवलोकन करने के लिए एक स्टैक स्निपेट है। यह सुनिश्चित करने के लिए कि आपका उत्तर दिखाई देता है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:
# Language Name, N bytes
जहाँ N आपके सबमिशन का आकार है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं, उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:
# Ruby, <s>104</s> <s>101</s> 96 bytes
var QUESTION_ID=55272;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function shouldHaveHeading(e){var a=!1,r=e.body_markdown.split("\n");try{a|=/^#/.test(e.body_markdown),a|=["-","="].indexOf(r[1][0])>-1,a&=LANGUAGE_REG.test(e.body_markdown)}catch(n){}return a}function shouldHaveScore(e){var a=!1;try{a|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(r){}return a}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading),answers.sort(function(e,a){var r=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0],n=+(a.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0];return r-n});var e={},a=1,r=null,n=1;answers.forEach(function(s){var t=s.body_markdown.split("\n")[0],o=jQuery("#answer-template").html(),l=(t.match(NUMBER_REG)[0],(t.match(SIZE_REG)||[0])[0]),c=t.match(LANGUAGE_REG)[1],i=getAuthorName(s);l!=r&&(n=a),r=l,++a,o=o.replace("{{PLACE}}",n+".").replace("{{NAME}}",i).replace("{{LANGUAGE}}",c).replace("{{SIZE}}",l).replace("{{LINK}}",s.share_link),o=jQuery(o),jQuery("#answers").append(o),e[c]=e[c]||{lang:c,user:i,size:l,link:s.share_link}});var s=[];for(var t in e)e.hasOwnProperty(t)&&s.push(e[t]);s.sort(function(e,a){return e.lang>a.lang?1:e.lang<a.lang?-1:0});for(var o=0;o<s.length;++o){var l=jQuery("#language-template").html(),t=s[o];l=l.replace("{{LANGUAGE}}",t.lang).replace("{{NAME}}",t.user).replace("{{SIZE}}",t.size).replace("{{LINK}}",t.link),l=jQuery(l),jQuery("#languages").append(l)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*\s*([^,]+)/;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table></div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table></div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody></table><table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody></table>