বার্ট্র্যান্ডের পুরস্কার


24

বার্ট্র্যান্ডের পোষ্টুলেটে বলা হয়েছে যে প্রতিটি পূর্ণসংখ্যার জন্য n ≥ 1 এর জন্য কমপক্ষে একটি প্রাইম পি যেমন এন <পি ≤ 2 এন থাকে । এই উপপাদ্যটি এন <4000 এর জন্য যাচাই করতে আমাদের 4000 কেসগুলি পরীক্ষা করতে হবে না: ল্যান্ডাউ ট্রিকটি বলেছে যে এটি যাচাই করা যথেষ্ট

2, 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259, 2503, 5003

সব প্রধান। কারণ এই সংখ্যার প্রত্যেকটিতে তার পূর্ববর্তী প্রতিটি অন্তর দ্বিগুণেরও কম {y: n <y ≤ 2n সেই সংখ্যার কমপক্ষে একটি সংখ্যক অন্তর্ভুক্ত থাকে।

সংখ্যার এই ক্রমটি হ'ল বার্ট্রান্ড প্রাইমস (ওইআইএস এ 1006992) এবং সেগুলি নিম্নলিখিত হিসাবে সংজ্ঞায়িত করা হয়েছে:

a(1) = 2
a(n) = largest prime below 2a(n-1)

চ্যালেঞ্জ

এই ক্রমটি প্রয়োগ করুন। আপনি লিখতে পারেন

  • এমন একটি ফাংশন বা প্রোগ্রাম যা কিছু এন দেয় (এন) (0 বা 1 ইনডেক্সড) দেয়,
  • কোনও ক্রিয়াকলাপ বা প্রোগ্রাম যা কিছু এন দিয়েছে এই ক্রমের প্রথম এন (বা এন -1 বা এন + 1 ) এন্ট্রি প্রদান করে,
  • আপনার অবিচ্ছিন্ন তালিকা বা স্ট্রিম বা জেনারেটর বা আপনার ল্যাংওয়েজের সমতুল্য।

উত্তর:


8

অক্টাভা , 32 বাইট

k=2
do k=primes(k+k)(end)until 0

অনির্দিষ্টকালের জন্য মানগুলি মুদ্রণ করে রাখে (প্রতিটি মান তার আগে থাকে k =)।

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


অক্টাভা , 42 বাইট

k=2
for i=2:input('')k=primes(k+k)(end)end

ইনপুট হিসাবে এন নেয় এবং এন প্রথম মানগুলিকে আউটপুট করে (প্রতিটি মান পূর্বে হয় k =)।

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


অক্টাভ , 51 বাইট

k=2;for i=2:input('')k=primes(k+k)(end);end
disp(k)

লুই মেন্ডোর এমএটিএল উত্তরের অনুরূপ । লাগে এন ইনপুট হিসাবে এবং আউটপুট একটি (ঢ) (1-ইন্ডেক্স)।

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


অক্টাভা , 60 বাইট

k=2;for i=2:input('')k*=2;while~isprime(--k)
end
end
disp(k)

লাগে এন ইনপুট হিসাবে এবং আউটপুট একটি (ঢ) (1-ইন্ডেক্স)।

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




6

05 এ বি 1 ই , 14 7 6 বাইট

$F·.ØØ

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


1-ইনডেক্সেড উত্তর (যদি না 0 0 আউটপুট 1 বলে মনে করা হয়), ব্যাখ্যা:

$       # Push 1 and input (n)...
 F      # n-times do... 
  ·     # Double the current prime (first iteration is 1*2=2).
   .ØØ  # Find prime slightly less than double the current prime.

এটি 1-সূচকযুক্ত কারণ সমস্ত পুনরাবৃত্তির সাথে একটি 'ডমি' পুনরাবৃত্তি রয়েছে n=1


Fx.ØØএত কাছে ... উপরের যে কোনও কিছুর জন্য কাজ করে n > 2
ম্যাজিক অক্টোপাস আরন

1
আমার ছিল $F·ÅPθ একই বাইট গণনা ছিল।
এমিগানা

@ এমিগনা ছিল? এটি 0% একই হা হা এর মতো। আমি বলতে চাই, প্রযুক্তিগতভাবে একই, কিন্তু না। এখনও এটি পোস্ট করতে পারে; পি।
ম্যাজিক অক্টোপাস আরন

6

হাস্কেল , 50 বাইট

f p|sum(gcd p<$>[1..p-1])<p=p:f(2*p)|1>0=f$p-1
f 2

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

অসীম তালিকা তৈরি করে।


হাস্কেল , 40 বাইট?

f p|mod(2^p-2)p<1=p:f(2*p)|1>0=f$p-1
f 2

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

বার্ট্র্যান্ডের প্রাইমে যদি 2 এর জন্য কোনও ফার্মাট সিউডোপ্রিম থাকে না এটি এটি কাজ করে ।


5

জেলি , 6 বাইট

2ḤÆp$¡

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

0-ইন্ডেক্স।

ব্যাখ্যা

2ḤÆp$¡  Main link. Input: n
2       Constant 2
    $¡  Repeat n times
 Ḥ        Double
  Æp      Find the largest prime less than the double

অকর্মা আপনার যা দরকার আরেকটি বাইট ) ... এখন
ম্যাজিক অক্টোপাস ভস্মাধার

@ ম্যাজিক অ্যাক্টপাস ইউরান 0 এর ইনপুট 2, 1 টি 3 দেয় এবং আরও অনেক কিছু দেয়। আমি কোন সমস্যা দেখতে পাচ্ছি না।
মাইল

আমি বলতে চাইছিলাম জয়ের জন্য এই উত্তরটিতে আপনার একটি বাইট সংরক্ষণ করা উচিত কারণ আমি আপনাকে 6-বাইটে বেঁধে ফেলেছি, আপনার উত্তরটি নিজেই ভাল।
ম্যাজিক অক্টোপাস উরন


5

স্ট্যাক্স , 10 বাইট

ü☼┌τ,æ▒ìn(

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

এই সমস্যাটি স্ট্যাক্সের প্রয়োগের ক্ষেত্রে একটি ত্রুটি উন্মোচিত করেছে :p, এটি এমন একটি নির্দেশ যা তার ইনপুটটির চেয়ে সর্বাধিক প্রধান পায়। যদি এটি সঠিকভাবে কাজ করে তবে একটি 5 6 বাইট সমাধান হবে। কিন্তু হায়, এটি হয় না এবং সেখানেও নেই। ভাষার স্রষ্টা হিসাবে, আমি এটি সংশোধন করব, তবে সমস্যাটি পোস্ট হওয়ার পরে এটি ঠিক করা এবং এটি ব্যবহার করা একরকম সস্তা বলে মনে হচ্ছে।

যাইহোক, উপরোক্ত প্রোগ্রামটির সংশ্লিষ্ট আসকি উপস্থাপনা এখানে।

ODH{|p}{vgs

এটি সমস্যার বিবৃতিটির তুলনামূলকভাবে সরাসরি-এগিয়ে এগিয়ে যাওয়া। এটি সম্পর্কে সম্ভবত আকর্ষণীয় একমাত্র জিনিস হ'ল gsজেনারেটর ফর্ম ব্যবহার । জেনারেটর এমন এক নির্মাণের পরিবার যা এক বা একাধিক সন্তোষজনক মান তৈরি করতে প্রাথমিক শর্ত, একটি রূপান্তর এবং একটি ফিল্টার একত্রিত করে। এই ক্ষেত্রে, এটি ভাঙা :pনির্দেশের জায়গায় ব্যবহৃত হয় ।

O               Push integer 1 underneath the input number.
 D              Pop the input and repeat the rest of the program that many times.
  H             Double number.
   {|p}         Predicate block: is prime?
       {vgs     Decrement until the predicate is satisfied.
                Output is implicitly printed.

সম্পাদনা করুন: এখানে 6 বাইট সমাধান রয়েছে, তবে এটির জন্য একটি বাগ-ফিক্স প্রয়োজন যা কেবলমাত্র এই চ্যালেঞ্জ পোস্ট হওয়ার পরে প্রয়োগ করা হয়েছিল।


দুর্দান্ত ভাষা! আমি এটিকে আমার গল্ফ ল্যাংগুলির তালিকায় যুক্ত করেছি । আপনি যদি কিছু ভুল দেখতে পান বা অন্য কিছু যুক্ত করতে চান তবে আমাকে জানান।
ETH প্রোডাকশনগুলি

@ ইথ প্রডাকশন: চমৎকার, ধন্যবাদ! যদি আপনি কিছু মনে করেন না, আপনি কি দোভাষী ইউআরএলকে স্ট্যাক্সল্যাং.অ্যাক্সে পরিবর্তন করতে পারেন আমি এর জন্য একটি ডোমেন নেওয়ার সিদ্ধান্ত নিয়েছি।
পুনরাবৃত্তি

1
বাহ, একটি গল্ফ ভাষা জন্য একটি সম্পূর্ণ ডোমেন? ভাগ্যবান ইসল্যাং;) আপডেট হয়েছে!
ETH প্রোডাকশন

@ রিসার্সিভ ওয়াও, প্রতিটি এক্সএইজেড ডোমেনের জন্য 1.99 ডলার? আমি আছি
যাদু অক্টোপাস আরন

4

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

r=m=k=P=2
while k:
 P*=k;k+=1
 if k>m:print r;m=r*2
 if P%k:r=k

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

চিরকাল মুদ্রণ।

উইলসনের থিওরেম প্রাইম জেনারেটর ব্যবহার করে যদিও প্রাইমগুলি ফরোয়ার্ড জেনারেট করা এই সমস্যার জন্য জটিল। ট্র্যাক বর্তমান বৃহত্তম মৌলিক দেখা rএবং দ্বিগুন সীমানা m

দুই বাইট করছেন সংরক্ষিত হয় P*=kবদলে P*=k*kযথারীতি, যেমন কার্যকর দাবি করতে 4 মৌলিক, এবং শটটি এটা দ্বিগুন ক্রম।


4

সিজেএম (15 বাইট)

2{2*{mp},W=}qi*

অনলাইন ডেমো । নোট করুন যে এটি 0-সূচকযুক্ত।


পিছনের দিকে অনুসন্ধান করা আরও দক্ষ পদ্ধতির জন্য হবে তবে এর জন্য আরও একটি অক্ষর প্রয়োজন কারণ এটি অন্তর্নিহিত ,(পরিসীমা) ব্যবহার করতে পারে না :

2{2*,W%{mp}=}qi*

4

জাপট , 16 14 13 12 বাইট

একের দামের জন্য দুটি সমাধান, উভয়ই 1-ইনডেক্সযুক্ত।


নবম মেয়াদ

অবশেষে, একটি চ্যালেঞ্জ আমি ব্যবহারের জন্য একটি কার্যকর সমাধান লিখতে পারি F.g()

_ôZ fj Ì}g°U

চেষ্টা করে দেখুন

                 :Implicit input of integer U
_       }g       :Starting with the array [0,1] take the last element (Z),
                 :pass it through the following function
                 :and push the returned value to the array
 ôZ              :  Range [Z,Z+Z]
    fj           :  Filter primes
       Ì         :  Get the last item
          °U     :Repeat that process U+1 times and return the last element in the array

প্রথম এন শর্তাদি

ÆV=ôV fj ̪2

চেষ্টা করে দেখুন

                 :Implicit input of integer U
                 :Also makes use of variable V, which defaults to 0
Æ                :Create range [0,U) and pass each through a function
  ôV             :  Range [V,V+V]
     fj          :  Filter primes
        Ì        :  Get the last item
         ª2      :  Logical OR with 2, because the above will return undefined on the first iteration
 V=              :  Assign the result of the above to V




2

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

সিকোয়েন্সটি অনির্দিষ্টকালের জন্য মুদ্রণ করে (এক্সিকিউশন বন্ধ করতে আপনাকে দ্বিতীয়বার "রান" ক্লিক করতে হবে)।

k=2
while 1:
 print k;k+=k
 while any(k%u<1for u in range(2,k)):k-=1

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

পাইথন 3 , 90 বাইট

N তম শব্দটি প্রদান করে।

f=lambda n,i=1,p=1:n*[0]and p%i*[i]+f(n-1,i+1,p*i*i) 
a=lambda n:n and f(2*a(n-1))[-1]or 1

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


2

সি (জিসিসি) , 97 87 86 80 79 বাইট

  • Pমূল লুপের মধ্যে অ-প্রাথমিকতা পরীক্ষা করার ক্রিয়াটি ইনলাইন করে দশ বাইট সংরক্ষণ করা ।
  • printfকলটি সরিয়ে একটি বাইট সংরক্ষণ করেছেন ।
  • ফিরিয়ে ছয়টি বাইট সংরক্ষণ করেছেন iকখনও শেষ না হওয়া স্ট্রিমটিকে আউটপুট না চতুর্থ সিকোয়েন্স এন্ট্রি (0-ইনডেক্সড) ।
  • সিলিংক্যাটকে ধন্যবাদ একটি বাইট সংরক্ষণ করা হয়েছে
f(p,r,i,m,e){for(r=2;p--;)for(e=0,i=r+r;e=m=!e;r=i--)for(;i-++m;e=e&&i%m);p=r;}

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


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

1

সংযুক্তি , 38 বাইট

{If[_,Last[Series[Prime,2*$[_-1]]],2]}

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

0 ভিত্তিক; nত্রিশ বার্ট্র্যান্ড প্রাইম ফিরিয়ে দেয় ।

পূর্ববর্তী / পরবর্তী প্রাইমগুলি সন্ধানের জন্য বর্তমানে কোনও বিল্টিন নেই, তাই আমি Seriesবিল্টিনটি সমস্ত প্রাইম অব গণনা করতে ব্যবহার করি 2*$[_-1]। এই শেষ প্রকাশটি $পুনরাবৃত্তির সম্পর্কটিকে সহজেই সংজ্ঞায়িত করতে অন্তর্ভুক্ত পুনরাবৃত্তি (আবদ্ধ ) ব্যবহার করে । যদি শর্তটি একটি বেস শর্ত নির্ধারণ করতে ব্যবহৃত হয়।



1

রেটিনা , 39 বাইট

.K`_
"$+"{`_
__
+`^(?=(..+)\1+$).

*\`_

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

.K`_

1 দিয়ে শুরু করুন।

"$+"{`

লুপের গণনা হিসাবে ইনপুটটি ব্যবহার করে লুপটি পুনরাবৃত্তি করুন।

_
__

দ্বিগুণ মান।

+`^(?=(..+)\1+$).

মানটির চেয়ে সর্বোচ্চ মূল খুঁজে নিন Find

*\`_

এটি মুদ্রণ কর.


0

রুবি , 51 + 7 (-প্রাইম) = 58 বাইট

->n{x=2
n.times{x=(x..2*x).select(&:prime?)[-1]}
x}

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

একটি লাম্বা বার্ট্র্যান্ড প্রাইমকে 0- সূচকযুক্ত গ্রহণ করে nএবং ফিরে আসবে nth। এখানে খুব বেশি কিছু নেই, তবে যাইহোক আমাকে এলোমেলো করে দিন:

->n{
  x=2                       # With a starting value of 2
  n.times{                  # Repeat n times:
    x=(x..2*x)              # Take the range from x to its double
      .select(&:prime?)[-1] # Filter to only primes, and take the last
  }
  x                         # Return
}

রুবি , 48 + 7 = 55 বাইট

x=2
loop{puts x
x*=2
loop{(x-=1).prime?&&break}}

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

মজাদার জন্য, এখানে একটি অসীম লুপ সমাধান। এটি প্রিন্ট করে এটি যায় এবং একটি বিঘ্নিত প্রয়োজন। আপনি যখন বাধা দেন ঠিক তার উপর নির্ভর করে আপনি আউটপুটটি দেখতে বা নাও দেখতে পারেন। Ungolfed:

x=2
loop{
  puts x
  x*=2
  loop{
    (x-=1).prime? && break
  }
}

0

এপিএল (ডায়ালগ প্রসারিত) , 12 বাইট

ব্যবহারকারী হিসাবে এন হিসাবে ইনপুট নেয়, অনুক্রমের Nth উপাদান (0-সূচকযুক্ত) প্রদান করে।

42×⍵}⍣⎕⊢2

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

ব্যাখ্যা:

42×⍵}⍣⎕⊢2  Full program
              Get input from user - call it 'N'
          2  Repeat the left function N times, beginning with 2
    2×⍵        Double the function input
 ¯4           Find the largest prime less than above

0

আর , 87 বাইট

প্রদত্ত nআউটপুটa(n)

j=scan();n=2;while(j-1){for(i in (n+1):(2*n)){n=ifelse(any(i%%2:(i-1)<1),n,i)};j=j-1};n

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

আমি এখনও "প্রদত্ত এন আউটপুট এ (1), এ (2) ... এ (এন)" এ কাজ করছি। আমি ভেবেছিলাম আমি এই কোডটি সামান্য সংশোধন করতে পারি তবে এটি এর চেয়ে আরও কঠিন বলে মনে হচ্ছে।

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