পুনরাবৃত্তির সাথে প্রাইম প্রাইজগুলি সন্ধান করুন


17

রিকার্সিভলি প্রাইম প্রাইমস হ'ল প্রাইমগুলির ক্রম

p(1) = 2
p(n) = the p(n-1)th prime

এখানে কীভাবে কেউ 4 র্থ পুনরাবৃত্তিমূলক প্রধানমন্ত্রী গণনা করতে পারে তার একটি উদাহরণ।

p(4) = the p(3)th prime
p(3) = the p(2)th prime
p(2) = the p(1)th prime
p(1) = 2
p(2) = the 2nd prime
p(2) = 3
p(3) = the 3rd prime
p(3) = 5
p(4) = the 5th prime
p(4) = 11

আপনার এমন একটি প্রোগ্রাম বা ফাংশন লিখতে হবে যা এন দেওয়া হলে, নবম পুনরাবৃত্তিমূলক প্রধানমন্ত্রীকে আউটপুট করে দেয়।

আপনি যদি উত্তর চান তবে অবশ্যই আপনার ক্ষেত্রে এটি সূচিত করতে চাইলে আপনি 0 ভিত্তিক সূচক ব্যবহার করতে বেছে নিতে পারেন।

এটি তাই আপনার বাইট গণনা হ্রাস করার লক্ষ্য।


পরীক্ষার মামলা

1 -> 2
2 -> 3
3 -> 5
4 -> 11
5 -> 31
6 -> 127
7 -> 709
8 -> 5381
9 -> 52711

প্রাসঙ্গিক OEIS এন্ট্রি: OEIS A007097

উত্তর:




8

গণিত, 16 বাইট

Nest[Prime,1,#]&

বেনামে ফাংশন। ইনপুট হিসাবে একটি সংখ্যা নেয় এবং আউটপুট হিসাবে একটি নম্বর প্রদান করে।


5

জেলি , 5 4 বাইট

@ ডেনিসকে 1 বাইট ধন্যবাদ।

1ÆN¡

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

ব্যাখ্যা

1        Starting with n = 1,
 ÆN      replace n by the nth prime
   ¡     (input) times.

আপনি প্রয়োজন হবে না
ডেনিস

@ ডেনিস তাই কি ¡কেবল নীলাদকে পুনরাবৃত্তি হিসাবে গ্রহণ করে এবং যদি কিছু না পাওয়া যায় তবে ইনপুটটিতে ডিফল্ট হয়ে যায়?
পুরক্কা কুডারী

<f><n>¡আনন্দের সাথে monadic বা dyadic পরমাণু গ্রহণ করে <n>। তবে, যদি <f>নীলাদ হয় তবে অবশ্যই কিছু ভুল হতে হবে, তাই এটি <f>¡পরিবর্তে পার্স করা হয়েছে এবং শেষের ইনপুটটি নেবে (শেষ কমান্ড-লাইন আর্গুমেন্ট, এসটিডিআইএন সেখানে নেই) <n>
ডেনিস

5

জাভাস্ক্রিপ্ট (ES6), 71 বাইট

p=(n,x=1)=>n?p(n-1,(N=y=>x?N(++y,x-=(P=z=>y%--z?P(z):z==1)(y)):y)(1)):x

অসম্পূর্ণ, আপনার তিনটি পৃথক পুনরাবৃত্তি ফাংশন রয়েছে:

P=(n,x=n)=>n%--x?P(n,x):x==1
N=(n,x=1)=>n?N(n-P(++x),x):x
p=(n,x=1)=>n?p(n-1,N(x)):x
  • P নির্ধারণ করে কিনা nপ্রধান ;
  • N খুঁজে n ;
  • pপুনরাবৃত্তভাবে Nইনপুট 1 nসময়গুলিতে চলে।


3

আর, 98 93 বাইট

5 বাইট @ এসএমসি ধন্যবাদ

এখানে একটি মারাত্মকভাবে অক্ষম পুনরাবৃত্তি সমাধান:

f<-function(m,n=1){j<-1;for(i in 1:n){j<-numbers::nextPrime(j)};a<-ifelse(m==0,j,f(m-1,j));a}

পরীক্ষার আউটপুট:

f(6)
[1] 127

f(10)        ### takes almost a minute... YIKES!!!
[1] 648391

1
আপনি কিছুটা করে শেভ করতে পারেনa<-ifelse(m==0,j,f(m-1,j))
স্মি


@ জিউসেপ, আপনার উত্তর হিসাবে পোস্ট করা উচিত ... এটি যথেষ্ট হ্রাস !!! এর আগে আমি এর ifআগে কখনও দেখিনি ... সুন্দর সুন্দর !!
জোসেফ উড

@ জোসেফউড না, এগুলি কেবল স্ট্যান্ডার্ড গল্ফ; মূল অ্যালগরিদম পরিবর্তন হয়নি। আমি আরও কিছু দুর্দান্ত গল্ফিং টিপসের জন্য আর-তে গল্ফ করার জন্য টিপস পড়ার পরামর্শ দিই (যদিও তারা সাধারণত ভয়ঙ্কর আর স্টাইল হয়)।
জিউসেপ

2

বাশ + সাধারণ ইউটিলিটিস, 55

যেহেতু আমরা পুনরাবৃত্ত প্রাইমগুলি করছি, তাই এখানে একটি পুনরাবৃত্ত উত্তর:

((SHLVL-2<$1))&&primes 2|sed -n "`$0 $1`{p;q}"||echo 1

যেহেতু পুনরাবৃত্তি স্তর গণনাটি $SHLVLবিল্ট-ইন ভেরিয়েবলের ভিত্তিতে , তাই আপনি ইতিমধ্যে কয়েকটি শেল স্তর গভীর হলে উত্তরটি বন্ধ হতে পারে। এই কারণেই এই উত্তর টিআইও-তে কাজ করে না।


যদি এটি কোনও ভাল না হয়, তবে এখানে আরও প্রচলিত উত্তর:

বাশ + সাধারণ ইউটিলিটিস, 58

for((i=$1;i--;));{
n=`primes 2|sed -n "$n{p;q}"`
}
echo $n

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


1

Haskell, , 58 বাইট

1-ইন্ডেক্স

f 1=2;f n=[x|x<-[2..],all((>)2.gcd x)[2..x-1]]!!(f(n-1)-1)

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

ব্যাখ্যা:

আদনানের উত্তর হিসাবে একই 0-সূচিযুক্ত প্রাইম-তালিকা অ্যাক্সেস ট্রিক ব্যবহার করে ।
মূলত স্ট্রেট-আপ অন্যথায় স্পেসিফিকেশন অনুসরণ করে।

f 1=2; -- base case
f n= -- main case
    [x|x<-[2..],all((>)2.gcd x)[2..x-1]]             -- list of all primes
    [x|x<-[2..],                                     -- consider all numbers
                               [2..x-1]              -- consider all smaller numbers
                all((>)2.gcd x)                      -- is coprime with them?
                    (>)2.                            -- 2 is greater than
                         gcd x                       -- gcd(x,lambda input)
                                        !!(f(n-1)-1) -- access the
                                                     -- f(n-1)-th 1-indexed prime


0

আশ্চর্য , 23 বাইট

p\.{1\2@:^(- p -#0 1)1P

1-ইন্ডেক্স। ব্যবহার:

p\.{1\2@:^(- p -#0 1)1P}; p 3

ব্যাখ্যা

p\.{                #. Pattern matching syntax
  1\2               #. Base case p(1)=2
  @:^(- p -#0 1)1P  #. Other cases p(n)=nthprime(p(n-1)-1)
                    #. nthprime is 0-indexed
}                   #. Trailing bracket is optional in this case
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.