অতীত পুরস্কারের শখের স্মৃতি


34

বিবেচনা করুন একটি মৌলিক সংখ্যা পি , বেস 10. লেখা মেমরির এর পি কঠোরভাবে কম স্বতন্ত্র মৌলিক সংখ্যার সংখ্যা হিসাবে সংজ্ঞায়িত করা হয় পি যে সাবস্ট্রিং যেমন অন্তর্ভুক্ত করা হয় পি

চ্যালেঞ্জ

একটি অ-নেতিবাচক পূর্ণসংখ্যা দেওয়া এন ইনপুট হিসাবে, ক্ষুদ্রতম মৌলিক এটি পি যেমন যে পি মেমরি আছে এন । অর্থাৎ ঠিক সঙ্গে ক্ষুদ্রতম মৌলিক এটি এন , সাবস্ট্রিং স্বতন্ত্র কঠোরভাবে ক্ষুদ্রতর মৌলিক।

ইনপুট

ইনপুট যে কোনও মানক বিন্যাসের মাধ্যমে নেওয়া যেতে পারে। আপনাকে অবশ্যই বৃহত্তম এন পর্যন্ত ইনপুট সমর্থন করতে হবে যাতে আউটপুট উপচে না যায়। রেফারেন্সের জন্য, 42 বিট মধ্যে 4294967291 বৃহত্তম প্রধান।

আউটপুট

আউটপুট STDOUT এ লিখিত হতে পারে বা কোনও ফাংশন থেকে ফিরে আসতে পারে।

উদাহরণ

2 নম্বরটিতে মেমোরি 0 রয়েছে কারণ এতে সাবস্ট্রিং হিসাবে কোনও কঠোরভাবে কম প্রাইম নেই।

113 সংখ্যাটি 3 মেমরির সাথে ক্ষুদ্রতম প্রধান is সংখ্যা 3, 13 এবং 11 কেবলমাত্র প্রধান সাবস্ট্রিং এবং 113 এর চেয়ে ছোট কোনও প্রাইমগুলি সাবস্ট্রিং হিসাবে ঠিক 3 প্রাইমগুলি ধারণ করে না।

অনুক্রমের প্রথম 10 টি পদ, n = 0 দিয়ে শুরু হয়

2, 13, 23, 113, 137, 1237, 1733, 1373, 12373, 11317

বিঃদ্রঃ

এটি OEIS এ A079397

লিডারবোর্ড

var QUESTION_ID=55406,OVERRIDE_USER=20469;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 commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
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>


চলমান সময়ের কি কোনও সীমা আছে?
বিটা ক্ষয়

পুনঃটুইট
অ্যালেক্স এ।

উত্তর:


8

পাইথ, 22 বাইট

f&}TPTqQlf}YPY{sMP.:`T

বিক্ষোভ , পরীক্ষার জোতা

ব্যাখ্যা:

f&}TPTqQlf}YPY{sMP.:`T
                          Implicit: Q = eval(input())
f                         Starting at T=1 and counting up, return the first T where
                    `T    repr(T)
                  .:      all substrings
                 P        except T itself
               sM         converted to integers
              {           unique examples only
         f                filter on
          }YPY            Y is in the prime factorization of Y, e.g. Y is prime.
      qQl                 Q == len of the above, that is, T has memory Q,
 &}TPT                    and T is prime, (is in its prime factorization.)

আপনি ব্যবহার করতে পারবেন না P_Yএবং P_Tপরিবর্তে }YPYএবং }TPTতারপরে ফিরে?
এরিক আউটগলফার

7

সিজেম, 33 31 30 বাইট

1{)__mp*{_mp2$s@s#)*},,easi^}g

এটি একটি সম্পূর্ণ প্রোগ্রাম যা ইনপুটটি কমান্ড-লাইন আর্গুমেন্ট হিসাবে পড়ে।

সিজেএম ইন্টারপ্রেটারে এটি অনলাইনে চেষ্টা করুন ।

টেস্ট রান

$ time cjam <(echo '1{)__mp*,{_mp2$s@s#)*},,easi^}g') 9
11317
real    0m3.562s
user    0m4.065s
sys     0m0.177s

কিভাবে এটা কাজ করে

1       e# Push I := 1 on the stack.
{       e# Do:
  )__   e#   Increment I and push two copies.
  mp*   e#   Check the last copy for primality and multiply with the first copy.
        e#   This pushes R := I if I is prime and R := 0 if it is composite.
  {     e#   Filter; for each J in [0 ... R-1]:
    _mp e#     Push a copy of J and check for primality.
    2$s e#     Push a copy of I and cast to string.
    @s  e#     Rotate the original J on top of the stack and cast to string.
    #   e#     Find the index (-1 if not found) of the latter in the former.
    )*  e#     Increment the index and multiply it with the result from `mp'.
        e#     This yields 0 iff J is composite or not a subtring of I.
  },    e#   Keep J if the product is non-zero.
  ,     e#   Push the length of the filtered range.
  easi  e#   Cast the array of command-line arguments to string, then to integer.
  ^     e#   XOR it with the length of the filtered range.
}g      e# Repeat while theresult is non-zero.

6

সিজেম, 40 বাইট

li2sa{_)\{1$\#)},,3$-}{i{)_mp!}gsa+}w]W=

এটি অনলাইনে চেষ্টা করুন

আমি নিশ্চিত এটি একটি বড় ধাক্কা হিসাবে আসে, তবে বাস্তবে এটি ডেনিস পোস্ট করা সমাধানের চেয়ে দীর্ঘ। ভাল, আসলে না, যেহেতু আমার নিজেরও খুব বেশি আশা ছিল না। তবে আমি যাইহোক এটি একটি শট দিতে চেয়েছিলেন। এবং যেহেতু এটি কাজ করছে, আমার কাছে এটি বেশ যুক্তিসঙ্গত দেখাচ্ছে এবং আমি বিশ্বাস করি যে এটি অন্তত কিছুটা আগ্রহী হওয়ার চেয়ে যথেষ্ট আলাদা, আমি ভেবেছিলাম এটি যেভাবেই পোস্ট করব।

এখানে মূল ধারণাটি হ'ল আমি একটি লুপের মধ্যে মৌলিক সংখ্যার একটি তালিকা তৈরি করি এবং প্রতিটি পদক্ষেপের তালিকায় পরবর্তী বৃহত্তর প্রধান সংখ্যা যুক্ত করি। সমাপ্তির জন্য যাচাই করার জন্য, আমি গণনা করছি তালিকার শেষ উপাদানটি ছাড়া অন্য কতগুলি উপাদান শেষ উপাদানটির একটি স্ট্রিং। যদি এই গণনাটি ইনপুট সমান হয় n, আমরা সম্পন্ন করেছি।

ব্যাখ্যা:

li    Get input and convert to integer.
2sa   Seed list of primes with ["2"]. The primes are stored as strings to make
      the later substring search more streamlined.
{     Start of while loop condition.
  _   Copy list of primes.
  )     Pop off last prime from list.
  \     Swap remaining list to top.
  {     Start of filter block for substring matches with all smaller primes.
    1$    Copy test prime to top.
    \     Swap the smaller prime to top to get correct order for substring search.
    #     Search.
    )     Increment to get truthy value (Search returns -1 if not found).
  },    End of filter. We have a list of smaller primes that are substrings now.
  ,     Count list entries.
  3$    Copy input n to top.
  -     Subtract the two for comparison. If they are different, continue loop.
}     End of while loop condition.
{     Start of while loop body. We need to generate the next prime.
  i     The largest prime so far is still on the stack, but as string.
        Convert it to integer.
  {     Start of loop for prime candidates.
    )     Increment current candidate value.
    _mp   Check if it is prime.
    !     Negate, loop needs to continue if it is not a prime.
  }g    End loop for prime candidates. On exit, next prime is found.
  sa+   Convert it to string, and add it to list of primes.
}w    End of while loop body.
]W=   Solution is at top of stack. Discard other stack entries.

4

পাইথ - 25 বাইট

নেস্টেড ফিল্টার, মেমরি গণনা করার জন্য অভ্যন্তরীণ, মেমরির প্রয়োজনীয়তার জন্য প্রথম খুঁজে বের করার জন্য বাহ্যিক।

f&!tPTqlf&!tPY}`Y`TtStTQ2

টেস্ট স্যুট


r2Tপরিবর্তেtStT
Jakube


2

জাভাস্ক্রিপ্ট ES6, 106 বাইট

n=>{for(a=[],i=2;a.filter(c=>(''+i).search(c)+1).length-n-1;a.push(i))while(!a.every(c=>i%c))i++;return i}

এখানে ব্যাখ্যার সাথে একটি বর্ণহীন সংস্করণ দেওয়া হয়েছে:

n=>{
  /**
   * a = list of primes
   * i = current integer
   * Iterate until number of members in a that are substring of i == n-1
   * After each iteration push the current value of i onto a
   */
  for(a=[],i=2; a.filter(c=>(''+i).search(c)+1).length-n-1; a.push(i)) {
    // Iterate until no member of a exactly divides i and increment i per iteration
    while(!a.every(c=>i%c)) i++;
  }
  return i;
}

অবশ্যই এটি ভয়াবহর পরিবর্তে দ্রুত ধীর হয়ে যায়। তবে ওপি জানিয়েছে যে সময়মতো কোনও সীমা নেই।


দুর্দান্ত সমাধান, বুদ্ধিমান ব্যবহার aএবং i%cপ্রধান-নেস পরীক্ষা করার জন্য। আমার {return i}else{a.push(i)}কাছে পরিবর্তন করে আপনি দুটি বাইট সংরক্ষণ করতে পারেন return i;else a.push(i)আমার বিশ্বাস বেনাম ফাংশনগুলিও অনুমোদিত, যা শুরুতে আরও দুটি বাইট সংরক্ষণ করতে পারে।
ইটিএইচ প্রডাকশনস

@ ইথ প্রডাকশন ধন্যবাদ ধন্যবাদ এটি ভাবেনি। যদিও আমি 7 বাইট শেভ করতে এবং if...elseলুপের জন্য মোড়কে সমস্ত যুক্তি সরাতে সক্ষম হয়েছি ।
জর্জ রিথ

বাহ, স্মার্ট! আপনি যদি মিলিত i++হয় i%c?
ETH প্রোডাকশনগুলি

@ ইথ প্রডাকশনগুলি কাজ করবে না কারণ এটি প্রতিটি মানের জন্য পুনরাবৃত্তি করবে aএবং পরবর্তী কলটিতে ভুল iযেমন, যখন আমরা 10 টি প্রাইম পেয়েছি তখন এটি প্রতিটি বাহ্যিক লুপের পুনরাবৃত্তির জন্য 10 বার পুনরাবৃত্তি করবে।
জর্জ রিথ

@ এইচটি প্রোডাকশনগুলি হ্যাঁ আমি মূলত পুনরাবৃত্তিটি ব্যবহার করতে চেয়েছিলাম তবে ওপি'র ন্যূনতম প্রয়োজনীয়তাগুলিকে আঘাত করার আগে এটি স্ট্যাকের সীমাতে পৌঁছে যেত। এখন এটির মতো এটির রিফ্যাক্টর হওয়া উচিত ... এটির উপরে ...
জর্জ রিথ

2

ব্র্যাচল্যাগ (2), 12 বাইট, ভাষা পোস্টডেটস চ্যালেঞ্জ

~{ṗ≜{sṗ}ᵘkl}

এটি অনলাইন চেষ্টা করুন!

এটি আগে 13 বাইট ছিল, ব্যবহার করে ᶠd , তবে এখন এটি একটি সংক্ষেপণ দেওয়া হয়েছে , এটি কেটে 12 কেটে নেবে এবং ভাষাটি যেভাবেই চ্যালেঞ্জকে পোস্টডেট করে, এবং বৈশিষ্ট্যটি এমন একটি যা বিশেষত এই চ্যালেঞ্জের জন্য যুক্ত করা হয়নি, আমিও হতে পারি এটা ব্যবহার করো.

ব্র্যাচল্যাজে যেমন যথারীতি, এটি একটি সম্পূর্ণ প্রোগ্রাম নয়, এটি একটি ফাংশন।

ব্যাখ্যা

~{ṗ≜{sṗ}ᵘkl}
~{         }  Find a value for which the following is true:
  ṗ             The value is prime;
   ≜            (evaluation strategy hint; avoids an infinite loop)
    {  }ᵘ       The set of unique
     sṗ         substrings which are prime
          l     has a length equal to {the input}
         k      when one element is removed.

এটি আমাদের যে সম্পত্তিটি চায় তার সাথে আমাদের সবচেয়ে ছোট প্রাইম দেয়, কারণ 0 টির আগে মানগুলি পরীক্ষা করে।


1

পাইথন 2, 163 154 বাইট

আমি গল্ফ হতে খুব ক্লান্ত হয়ে পড়েছি .. আশা করি আগামীকাল আমি যখন জেগে উঠি তখন আমি এটিকে আরও উন্নত করতে পারি।

p=lambda n:all(n%x for x in range(2,n))
g=input()
s=2
while not(p(s)and len([l for l in[str(x)for x in range(2,s)if p(x)]if l in str(s)])==g):s+=1
print s

1

জুলিয়া, 86 বাইট

n->for i=1:~0>>>1 isprime(i)&&sum(j->contains("$i","$j"),primes(i-1))==n&&return i;end

এটি কার্যত স্ব-ব্যাখ্যামূলক। সমস্ত ধনাত্মক পূর্ণসংখ্যার উপর লুপ করুন এবং প্রতিবার কোনও মৌলিক সন্ধান পাওয়া গেলে, বুলিয়ান অ্যারের যোগফলটি নির্দেশ করে যে বর্তমানের চেয়ে কম প্রাইমসের সেটটি বর্তমানের সাবস্ট্রিংগুলি কিনা। যদি এটি প্রয়োজনীয় সংখ্যক মিলের সাথে একটি খুঁজে পায়, তবে সেই মানটি ফিরিয়ে দিন।

চলমান সময় n = 11 এর জন্য অলস হয়ে যায় এবং বেশিরভাগ মান 11 এর চেয়ে বেশি হতে পারে - বিশেষত আমার ল্যাপটপে, n = 11 প্রায় 33 সেকেন্ড সময় নেয়।


পরিষ্কার এবং মার্জিত সমাধান, যদিও এটি কেবলমাত্র 64৪-বিট সিস্টেমে কাজ করে (এর জন্য জুলিয়া টাইপ সিস্টেমকে দোষ দিন - ৩২-বিট প্ল্যাটফর্মে এটি 2^63মূল্যায়ন করে 0, যেমন জুলিয়া Int32৩২-বিট সিস্টেমে পূর্ণ সংখ্যার জন্য ডিফল্ট হয় - সিক!)। 32-বিট সিস্টেমে সমাধানের কাজটি করার সবচেয়ে স্বল্পতম প্রতিমাটি for i=1:uint(-1)তখনই হবে তবে এটির জন্য 2 বাইট বেশি লাগে। তবে, সমস্ত প্ল্যাটফর্মগুলিতে গল্ফযুক্ত সমাধানগুলির পরীক্ষা করা প্রয়োজন, সুতরাং +1।
pawel.boczarski

@ পাওয়েল.বোকজারস্কি - আমি বিট-শিফটিং ব্যবহার করে এটি ঠিক করতে পারি। একবার দেখুন ...
গ্লেন ও

আমি "মানচিত্র "টিকেও সরিয়েছি, কারণ এটি যোগফলের মধ্যে অনর্থক, কারণ সমষ্টিটি একটি পদ গ্রহণ করতে পারে যা সামিটের আগে প্রতিটি পদে প্রয়োগ করা হয়।
গ্লেন ও

0

হাস্কেল, 149 147 144 বাইট

( importঘোষণাটি গণনা করছে না 127 বাইট )।

import Data.List
i x=x`elem`nubBy(((>1).).gcd)[2..x]
f n=[p|p<-[2..],i p,n==length(nub[x|x<-[read b|a<-tails$show p,b<-tail$inits a],i x])-1]!!0

উপাত্ত.লিস্ট> মানচিত্র এফ [0..20]
[2,13,23,113,137,1237,1733,1373,12373,11317,23719, বিঘ্নিত হয়েছে।

উপরের আউটপুটটি দীর্ঘ সংজ্ঞা দিয়ে উত্পাদিত হয়েছিল

i x=and$[x>1]++[rem x n>0|n<-[2..x-1]]

নতুন, তিনটি অক্ষর সংক্ষিপ্ত, সংজ্ঞাটি অনেক ধীর গতিযুক্ত, ধৈর্য হ্রাস এবং বিসর্জন দেওয়ার আগে আমি ক্রমে কেবল 5 টি প্রথম নম্বর পেতে পারি।



0

পিএইচপি, 124 বাইট

for($p=1;;){for($i=$c=0;$i-1;)for($i=++$p;$p%--$i;);$m[]=$p;foreach($m as$q)$c+=!!strstr($p,"$q");$c-1-$argv[1]?:die("$p");}

কমান্ড লাইন আর্গুমেন্ট থেকে ইনপুট নেয়; দিয়ে চালানো -r

ভাঙ্গন

for($p=1;;)
{
    for($i=$c=0;$i-1;)for($i=++$p;$p%--$i;);    // find prime $p
    $m[]=$p;                                    // remember that prime
    foreach($m as$q)$c+=!!strstr($p,"$q");      // count memory primes
    $c-1-$argv[1]?:die("$p");                   // if memory==N, exit
}

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.