পুনরাবৃত্তি ডিজিট পুরষ্কার


13

অন্য ক্রম, অন্য চ্যালেঞ্জ। *

সংজ্ঞা

একজন প্রধানমন্ত্রী pএই ক্রম হয়, এটা কল দিন Aযে অঙ্ক জন্য iff, dমধ্যে pএর দশমিক সম্প্রসারণ, তোমাদের স্থলাভিষিক্ত dসঙ্গে dকপি dএবং তার ফলে পূর্ণসংখ্যা এখনও প্রধানমন্ত্রী হয়; শূন্য অনুমোদিত নয়।

উদাহরণস্বরূপ, 11এই ক্রমটি তুচ্ছভাবে হয় (এটি প্রথম সংখ্যা, ঘটনাচক্রে)। অনুক্রমের পরবর্তীটি হল 31, কারণ 3331এটিও প্রধান; তারপরে 53কারণ 55555333এটিও প্রধান, ইত্যাদি।

চ্যালেঞ্জ

একটি ইনপুট দেওয়া হয়েছে n, প্রত্যাবর্তন A(n), অর্থাত nএই অনুক্রমের তম আইটেম।

উদাহরণ

আপনাকে শুরু করার জন্য এখানে প্রথম 20 টি শর্ত রয়েছে। এটি OEIS এ A057628

11, 31, 53, 131, 149, 223, 283, 311, 313, 331, 397, 463, 641, 691, 937, 941, 1439, 1511, 1741, 1871

এর অর্থ A(0) = 11, A(1) = 31ইত্যাদি, শূন্য সূচক ব্যবহার করার সময়।

বিধি

  • আপনি শূন্য বা এক-ভিত্তিক সূচক বেছে নিতে পারেন; আপনার উত্তর যা নির্দিষ্ট করুন।
  • পরিবর্তে কেবলমাত্র nতমতম উপাদানটি ফিরে আসার পরিবর্তে আপনি প্রথম nপদটি ফিরিয়ে আনতে বেছে নিতে পারেন ।
  • আপনি ধরে নিতে পারেন যে ইনপুট / আউটপুট আপনার ভাষার স্থানীয় সংখ্যার বিন্যাসের চেয়ে বড় হবে না; তবে, পুনরাবৃত্ত-অঙ্কের প্রধানটি আপনার ভাষার নেটিভ ফর্ম্যাটের চেয়ে বড় হতে পারে, সুতরাং এটির জন্য দায়বদ্ধ হওয়া প্রয়োজন।
  • উদাহরণস্বরূপ, 1871উদাহরণগুলির শেষ সংখ্যাটির সাথে সম্পর্কিত প্রাইম রয়েছে 18888888877777771যা মানক INT32 এর চেয়ে বেশ খানিকটা বড়।
  • হয় একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন গ্রহণযোগ্য। যদি কোনও ফাংশন হয় তবে আপনি আউটপুটটি মুদ্রণের পরিবর্তে ফিরে আসতে পারেন।
  • আউটপুট কনসোলে থাকতে পারে, কোনও ফাংশন থেকে ফিরে, একটি সতর্কতা পপআপে প্রদর্শিত হয় ইত্যাদি can
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • এটি তাই সাধারণ গল্ফিংয়ের সমস্ত নিয়ম প্রয়োগ হয় এবং সংক্ষিপ্ততম কোড (বাইটে) জয়ী হয়।

* সত্যি কথা বলতে, আমি সিক্যুয়েন্সের প্রথম কয়েকটি শর্ত নিয়ে এসেছি কিছু সংখ্যক সাথে খেলে, এবং তারপরে বাকি ক্রমটি পেতে ওইআইএসে গিয়েছিলাম।


2
আমি অবাক হয়েছি যদি এমন কোনও প্রধানমন্ত্রী উপস্থিত থাকেন যার পুনরাবৃত্ত অঙ্কের ফলাফলটিও এই ক্রমটিতে রয়েছে এবং যার পুনরাবৃত্ত অঙ্কের ফলাফলটিও এই ক্রমটিতে রয়েছে, এবং এই জাতীয় বিজ্ঞাপন। অত্যন্ত অসম্ভব বলে মনে হচ্ছে।
স্টেডিবক্স 21

1
@ স্টেডিবক্স 11 এই শর্তটি পূরণ করে, বিজ্ঞাপন হিসাবে। তবে এটি ছাড়াও আপনি ডিজিট রিপিটিং অপারেশনটি কতবার প্রয়োগ করতে এবং প্রাইমস পেতে থাকবেন তা দেখতে আকর্ষণীয় হবে।
dylnan 21

প্রদত্ত যে 1666666999999999 মূল, কেন 169 ক্রমিক নয়?
পাবলো অলিভা

2
@ পাবলোলিভা যেহেতু 169নিজেই প্রধান নয়, এটি 13 * 13
অ্যাডমবর্কবার্ক

উত্তর:


6

হুশ , 15 বাইট

!fo§&öεpd´ṘΠdİp

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

!                 Index into
             İp     the list of primes
 f                    for which:
            d            the digits of p
  o§&                      satisfy both:
     öεpd´Ṙ                  repeated "themselves" times, they form a prime.
           Π                 they are all nonzero.

এরিক আউটগলফার একটি বাইট সংরক্ষণ করলেন। পরিবর্তে ব্যবহার করা εpঅন্য বাইট সংরক্ষণ করতে পারে, কিন্তু এটি প্রোগ্রাম এত ধীর করে তোলে আমাদের এমনকি এন = 2 জন্য।


1
@ এইচ.পি.উইজ আমি মনে করি না আমরা এখানে গতিতে বিচার করব ...
এরিক দি আউটগল্ফার

আমার সত্যিই দোভাষীর গতি বাড়াতে হবে , এটা উন্মাদ যে সমস্ত প্রাথমিক কারণগুলি খুঁজে পাওয়ার চেয়ে ধীরে ধীরে ...
Zgarb

6

05 এ বি 1 ই , 14 13 বাইট

-1 বাইট ধন্যবাদ এমিগনাকে !

µNSÐPŠ×JpNpPĀ½

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

ব্যাখ্যা

µNSÐPŠ×JpNpPĀ½
µ              # Do until the input is reached...
 N              # Push the iteration counter
  S             # Split it to its digits
   Ð            # And push two copies of it to the stack
    P           # Get the digital product of the counter
     Š          # And place it two places down the stack
      ×J        # Repeat each digit by itself and join it back to a number
        p       # Check for primality on that result
         Np     # And on the original counter as well
           PĀ   # Create the product and truthify the result
                # Implicit: If it is true increment the input number

5

জেলি , 18 14 বাইট

ÆPaDxDḌÆPaDẠµ#

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

মিঃ এক্সকোডার: -১ বাইট (যৌক্তিক সমস্ত)

এরিক দ্য আউটগোল্ফার: -২ বাইট (দুইজনের পরিবর্তে এক লাইন)

হাইপারনেট্রিনো: -1 বাইট (অনুক্রমের প্রথম এন উপাদানগুলি ফিরে আসুন)

ব্যাখ্যা

ÆPaDxDḌÆPaDẠµ#     First Link
ÆP                Is prime?
  a               logical and
   D              convert number to list of digits
    xD            repeat each digit as many times as it's value
      Ḍ           convert to an integer
       ÆP         is prime?
         a        logical and
          D       list of digits
           Ạ      logical all
            µ     the following link as a monad
             #    Do this until n matches are found and return them all

সম্পাদনা: মূলত এমন একটি উত্তর জমা দিয়েছিল যা সংখ্যার সাথে 0 এর দশমিক প্রতিনিধিত্ব করে যা নির্দিষ্টভাবে অনুমোদিত নয়।


আমি একটি সংক্ষিপ্ত এবং স্বতন্ত্র উত্তর দেওয়ার চেষ্টা করেছি তবে আমি ঠিক একই জিনিস পেয়েছি :( এক্সডি
হাইপার নিউট্রিনো

5

ওল্ফ্রাম ভাষা (ম্যাথমেটিকা) , 100 বাইট

Nest[#+1//.i_/;!PrimeQ@FromDigits[##&@@#~Table~#&/@(l=IntegerDigits@i)]||Min@l<1:>NextPrime@i&,1,#]&

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

জোনাথন ফ্রেচ 3 বাইট সংরক্ষণ করেছেন

এবং জংহওয়ান মিন থেকে -7 বাইট

মার্টিন ইন্ডার থেকে -15 বাইট

জেনি ম্যাথিকেও ধন্যবাদ


4

অ্যালিস , 72 70 66 62 56 বাইট

লিওকে 5 টি বাইট সংরক্ষণ করার জন্য ধন্যবাদ

/.\&wh...tz~F0/*$\W.tzt$W?K/ o
\i/&.,a:.$K;d&\FR/K.!w.a%

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

1-ভিত্তিক ইনপুট ব্যবহার করে।

ব্যাখ্যা

Neatest golfing কৌতুক এখানে (যদিও এটি শুধুমাত্র বাইট দুয়েক সংরক্ষণ) যে, আমি একজন primality পরীক্ষা যা দেয় ব্যবহার করছি হয় 0যৌগিক জন্য এন জন্য nজন্য অ যৌগিক এন । এইভাবে, আমাদের ফলাফলটি সরাসরি শর্তসাপেক্ষে ব্যবহার করতে হবে না, তবে আমরা সরাসরি এটি পরের অংশে দিতে পারি যা পরীক্ষা করে যে ইনপুটটিতে কোনও জিরো নেই।

/i\       Read all input in Ordinal mode (the usual way to read decimal input).
&w        Push the current IP position onto the return address stack (RAS)
          n times. This effectively begins our main loop. We will return
          here after each number we've checked, but whenever we come across
          a repeated digit prime (RDP), we will pop one copy of the address
          from the RAS, so that the loops ends once we've found n RDPs.

h.        Increment our main loop iterator X (initially an implicit zero on
          the empty stack) and duplicate it.
.         Make another copy.
.tz       Drop all factors less than X. This gives X for prime X and 1 for
          non-prime X.
~F        Check whether X divides this value. Of course, X divides X so this
          gives X for non-composite X. But X doesn't divide 1 (unless X is 1),
          so we get 0 for composite X. Call this Y.
0         Push a 0.
\         Switch to Ordinal mode.
F         Implicitly convert both to string and check whether Y contains 0.
$/K       If it does, return to the w. Either way, switch back to Cardinal mode.
          Note that the only numbers that get to this point are 1 and prime
          numbers which don't contain 0. It's fine that we let 1 through here,
          because we'll use a proper primality test for the digit-expanded
          version later on.
.!        Store a copy of X on the tape. Let's call the copy that remains on
          the stack Z, which we're now decomposing into digits while expanding
          them.
w         Push the current IP position to the RAS. This marks the beginning
          of an inner loop over the digits of Z.

  .a%       Duplicate Z and retrieve its last digit D by taking Z % 10.
  \./       Duplicate D (in Ordinal mode but that doesn't matter).
  &.        Duplicate D, D times. So we end up with D+1 copies of D.
  ,         Pop the top D and pull up the Dth stack element, which is Z.
  a:        Discard the last digit by taking Z / 10.
  .$K       If Z is zero now, skip the K and end the inner loop, otherwise
            repeat the inner loop.
;         Discard the 0 (what used to be Z).
          We now have D copies of each digit D on the stack, but the digits
          were processed in reverse order, so the last digit is at the bottom.
d&        Repeat the next command once for each stack element.
\*        Concatenate in Ordinal mode. This joins all the digits on the
          stack into a single string.
R         Reverse that string. This is the digit-expanded version of X.
/         Switch back to Cardinal mode.
W         Pop the inner loop's return address from the RAS. We could have done
          this right after the most recent K, but putting it here helps lining
          up the two Ordinal sections in the program layout.
.tzt      Is the digit-expanded number a prime?
$W        If so, we've found an RDP. Pop one copy of the main loop address 
          from the RAS.
g         Recover the current value of X from the top left grid cell.
K         Jump back to the w if any copies of the return address are left 
          on the RAS. Otherwise, we leave the main loop.
/o        Implicitly convert the result to a string and print it in
          Ordinal mode.
          The IP will then bounce off the top right corner and start
          travelling through the program in reverse. Whatever it does
          on the way back is utter nonsense, but it will eventually get
          back to the division (:). The top of the stack will be zero
          at that point and therefore the division terminates the program.

4

পাইথন 2 , 130 বাইট

  • এই চারটি বাইট সংক্ষিপ্ত সমাধানের জন্য আরবোকে ধন্যবাদ ।
f=lambda n,c=9:n and f(n-(('0'in`c`)<p(c)*p(int("".join(d*int(d)for d in`c`)))),c+1)or~-c
p=lambda n:all(n%m for m in xrange(2,n))

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


পাইথন 2 , 195 179 167 140 138 136 135 134 বাইট

  • ওভিএসকে ধন্যবাদ 27 বাইট সংরক্ষণ করা ; xrangeপরিবর্তে ব্যবহার করে range, এইভাবে একটিকে MemoryErrorআটকানো এবং প্রধান ফাংশনটিকে সংহত করা; পূর্ণসংখ্যা সূচক গণনা উন্নতি।
  • দুটি বাইট সংরক্ষণ করা; বাইনারি পাইপ বা |বাইটগুলি ওভার বাঁচাতে অপারেশনগুলি ব্যবহার করে or
  • দুটি বাইট সংরক্ষণ করা; প্রাইম ফাংশনটি উল্টানো এবং আরও কিছু লজিক ম্যানিপুলেশন করা
  • একটি বাইট সংরক্ষণ করা; ব্যবহার ~-পরিবর্তে 0**একটি শূন্য অস্তিত্ব উল্টানো jহিসাবে, &একটি সত্য বুলিয়ান দ্বারা অনুসরণ এই মান এর বুলিয়ান সম্পত্তি বিচ্ছিন্ন।
  • লিনকে একটি বাইট ধন্যবাদ সংরক্ষণ করা ; গল্ফিং ~-A&B&C(সমতুল্য (not A) and B and C) সাথে A, B, Cবুলিয়ান হতে A<B==C
def f(n,j=9,p=lambda n:all(n%j for j in xrange(2,n))):
 while n:j+=1;n-=("0"in`j`)<p(j)==p(int("".join(d*int(d)for d in`j`)))
 print j

এটি অনলাইন চেষ্টা করুন! (1-ইন্ডেক্স)

ব্যাখ্যা

একটি প্রধান ফাংশন সংজ্ঞায়িত করে fযা পূর্ণসংখ্যা সূচক, nএবং একটি ডিফল্ট সেট মান j, বর্তমান সিকোয়েন্স ক্যান্ডিটি ( 9প্রোগ্রামের আকার বজায় রেখে পারফরম্যান্স উন্নত করতে অভ্যস্ত ) এবং একটি প্রাইম চেকিং ফাংশন নির্ধারণ করে।
যতক্ষণ nনা শূন্য, nতৃতীয় সিকোয়েন্স এন্ট্রি এখনও পাওয়া যায় নি। সুতরাং jবর্ধিত হয় এবং nএক iff দ্বারা হ্রাস হয় jযা একটি নম্বর যা প্রয়োজনীয় বৈশিষ্ট্যগুলি সন্তুষ্ট করে।
যখন লুপটি শেষ হয়, jতখন nচতুর্থ সিকোয়েন্স এন্ট্রি হয় এবং এভাবে মুদ্রিত হয়।


আমি পার্টিতে কিছুটা দেরি করেছি, তবে আপনি আরও 4 টি বাইট
আরবো

@ আরবো আপনাকে ধন্যবাদ
জোনাথন ফ্রেচ

3

পাইথ , 21 বাইট

.f&.AKjZT&P_ss*VK`ZP_

এখানে চেষ্টা করুন!

বরং দীর্ঘায়িত হিসাবে পাইথের অন্তর্নির্মিত দশমিক প্রসার নেই ।

  • প্রথম এন ধনাত্মক পূর্ণসংখ্যাগুলি নিন ( .f), এটি:
    • সমস্ত অঙ্ক সত্যবাদী ( .AKjZT) এবং ( &) রাখুন ...
    • তাদের অঙ্কগুলি ( *VK`Z) দিয়ে তাদের স্ট্রিং প্রতিনিধিত্বের ভেক্টরাইজড গুণগুলি একসাথে যোগদান করে এবং পূর্ণসংখ্যায় রূপান্তরিত হয় ( ss) হ'ল প্রাইম ( P_), এবং ( &) ...
    • এগুলি নিজেরাই প্রাইম ( P_)।

eনতুন নিয়ম সংশোধন অনুযায়ী আপনি অপসারণ করতে পারেন ।
এরিক আউটগল্ফার 21

@ এরিকথ আউটগল্ফার সম্পন্ন হয়েছে, ধন্যবাদ
মিঃ এক্সকোডার

2

পার্ল 6 , 51 বাইট

{(grep {!/0/&is-prime $_&S:g/./{$/x$/}/},2..*)[$_]}

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

  • grep {...}, 2..*ধনুর্বন্ধনী মধ্যে প্রাকটিক্যাল ফাংশন ব্যবহার করে 2 থেকে শুরু প্রাকৃতিক সংখ্যার অসীম অনুক্রম ফিল্টার করে। (...)[$_]ফাংশনের যুক্তি ব্যবহার করে এই ফিল্টার তালিকায় সূচকগুলি $_
  • !/0/ শূন্য অঙ্কযুক্ত সংখ্যাগুলি ফিল্টার করে।
  • S:g/./{$/ x $/}/ পরীক্ষার সংখ্যার দশমিক বিস্তারে প্রতিটি অঙ্ককে প্রতিলিপি করে।
  • is-prime $_ & S:g/./{$/ x $/}/is-primeএকটি এবং-সংযোগ $_, পরীক্ষা নম্বর এবং তার সংখ্যাগুলি প্রতিরূপকরণের ফলে সংখ্যা সহ বিল্ট-ইন ফাংশনটিকে কল করে । ফাংশনটি সত্য ফিরে আসবে যদি এবং-জংশনের উভয় সদস্যই প্রধান হয়।

2

জে, 81 বাইট

f=.[:1&p:(*@(*/)*x:@#~)&.(10&#.inv)
[:{.(4&p:@{.@]([,]+f@[){:@])^:([>{:@])^:_&2 0

এটি সেই পরিস্থিতিতে একটি যার জন্য আমি এখনও একটি ভাল জে সমাধান খুঁজে পাইনি।

তবুও, আমি নতুন কিছু শেখার প্রত্যাশায় এটি পোস্ট করছি।

fপ্রদত্ত সংখ্যাটি যদি "পুনরাবৃত্ত অঙ্কের প্রাইম" হয় তবে আমাদের জানান। এটি নীচে ভেঙে যায়:

[:1&p:                               is the following a prime?
      (*@                            the signum of...
         (*/)                        the product of the digits
             *                       times...
              x:@                    force extended precision of...
                 #~)                 self-duplicated digits
                    &.               "Under": perform this, then perform its inverse at the end
                      (10&#.inv)     convert to a list of digits

এবং পরিশেষে প্রধান করণীয় ... ক্রিয়াপদের সাথে এর বেহায়াপনা, আপাতদৃষ্টিতে অপ্রয়োজনীয় বয়লারপ্লেট রয়েছে যা আমাদের অগ্রগতি সংরক্ষণের জন্য আমাদের একটি তালিকা ব্যবহার করা দরকার যা "বর্তমান প্রাইম" এবং "এতদূর পাওয়া গেছে" রেজিস্ট্রার উভয়েরই প্রয়োজন from , যেহেতু আমাদের বাম যুক্তি ইতিমধ্যে থামার শর্তটি সংরক্ষণ করার জন্য নেওয়া হয়েছে, অর্থাত্ n,। এর অর্থ এই যে আমাদের আরগগুলি ( [এবং ]) নির্দিষ্ট করার এবং আমাদের 2 উপাদান তালিকা ( {.এবং {:) আনপ্যাক করার সহজ কাজের জন্য অবশ্যই অনেক মূল্যবান বাইট ব্যবহার করতে হবে :

[:{.                                                take the first element of the final result, of the following Do... While:
    (4&p:@                                          the next prime after...
          {.@                                       the first element of...
             ]                                      the right arg 
                       {:@])                        the last (2nd) elm of the arg...
              ([,]+f@[)                             those two now become the left and right args to this verb...
               [,                                   left arg appended to...
                 ]+                                 right arg plus...
                   f@[                              f of the left arg...
                             ^:(      )^:_          keep doing all that while...
                                [>                  the left is bigger than...
                                  {:@]              the last elm of the right arg
                                          &2 0      seed the process with 2 0, ie,
                                                    the first prime, and 0 rdps found so far.

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


এটির সাহায্যকারীর কাজটি কি আসলেই কম কম? আপনি কেবল fবন্ধনীগুলিতে আবৃত সহায়ক ফাংশন দিয়ে প্রতিস্থাপন করতে পারবেন না । এছাড়াও, আমি সাহায্যকারী ফাংশনটি গল্ফ করার জন্য আমার হাতটি চেষ্টা করেছিলাম এবং এগিয়ে এসেছি 1 p:('x',~"."0#])&.":, যা দুর্ভাগ্যক্রমে তাদের মধ্যে '0' দিয়ে সফলভাবে প্রাইমগুলি বাদ দেয় না। আপনি কোনো চিন্তা আছে? 'x',~অতিরিক্ত নির্ভুলতা পেতে এর অংশও থাকতে হবে ...
কোল

@ কোল হ্যাঁ রে: সহায়ক ফাংশন একটি বাইট যুক্ত করেছে, তবে এই মুহুর্তে আমরা টাইটানিকের উপর পিতল পলিশ করছি, তাই আমি বুঝতে পেরেছি যে কেন বিরক্ত হবে, কেবল স্পষ্টতা বজায় রাখতে হবে, এবং মাইল বা ফ্রেউনিফ্রাগ এমন ধারণা নিয়ে আসবে যা সত্যিকারের বাইটগুলি সংরক্ষণ করে
জোনা

আমি পরে সাহায্যকারী ফাংশনটির আপনার গল্ফটি যাচাই করব
জোনা

এখনও অবধি 57 বাইট (((0>.-)((*&(1&p:)0&e.|10#.#~),.&.":))([,(+*)~)])/^:_@,&2, 10xব্যাপ্তিটি প্রসারিত করতে ব্যবহার করুন অন্যথায় n = 15 এড়িয়ে যাবে 937
মাইল

@ মাইলস, আপনি জে দেবতা। ইতিমধ্যে এখানে কিছু নতুন নতুন কৌশল খুঁজে পেয়েছি। আমি পুনরাবৃত্তি / হ্রাস বুঝতে পেরেছি তা নিশ্চিত করার জন্য আগামীকাল আবার এটি দেখতে যাচ্ছি। আমি জানি না যে আপনি আমার SO প্রশ্নের লিঙ্কটি লক্ষ্য করেছেন কিনা, তবে আপনি কি বলবেন এটি একটি সাধারণ কৌশল যা আমি সেখানে উত্থাপিত সমস্যাটির সমাধান করতে পারে?
জোনাহ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.