আমরা কি প্রাইম ক্লাস্টারটি শেয়ার করি?


10

প্রধানমন্ত্রী ক্লাস্টার একটি পূর্ণসংখ্যা এর এন বেশী 2 যেমন জুড়ি সর্বোচ্চ মৌলিক দ্বারা গঠিত সংজ্ঞায়িত করা হয় কঠোরভাবে কম এন এবং সর্বনিম্ন মৌলিক কঠোরভাবে বেশী এন

নোট করুন যে উপরের সংজ্ঞাটি অনুসরণ করে, যদি পূর্ণসংখ্যাটি নিজেই প্রধান হয়, তবে এর প্রাইম ক্লাস্টারটি প্রিমেসগুলির পূর্ববর্তী এবং উত্তরসূরির জুড়ি ।

কার্য

দুটি পূর্ণসংখ্যার এন , এম ( এন, এম ≥ 3 ) দেওয়া, এন এবং এম এর একই প্রাইম ক্লাস্টার আছে কিনা তার উপর ভিত্তি করে একটি সত্য / মিথ্যা মান আউটপুট দেয়।

এটি , সুতরাং লক্ষ্যটি হ'ল আপনার বাইট সংখ্যা যতটা সম্ভব হ্রাস করা। সুতরাং, প্রতিটি প্রোগ্রামিং ভাষার সবচেয়ে সংক্ষিপ্ত কোডটি জয়ী হয়।

পরীক্ষার কেস / উদাহরণ

উদাহরণস্বরূপ, 9 এর মূল ক্লাস্টার হ'ল [7, 11], কারণ:

  • 7 হ'ল সর্বাধিক প্রধানতম 9 এবং এর চেয়ে কম prime
  • 11 সর্বনিম্ন মৌলিক কঠোরভাবে বেশী হয় 9

একইভাবে, 67 এর প্রধান ক্লাস্টার হ'ল [61, 71](নোট করুন 67 প্রাইম) is

সত্যবাদী জোড়

8, 10
20, 22
65, 65
73, 73
86, 84
326, 318
513, 518

মিথ্যা জোড়ায়

4, 5
6, 8
409, 401
348, 347
419, 418
311, 313
326, 305

সত্যবাদী / মিথ্যা মানগুলি কি দুটি স্বতন্ত্র মান হতে পারে বা তাদের প্রোগ্রামের আউটপুট থেকে সত্য / মিথ্যা মান এবং আউটপুট (সম্ভাব্য অসীম) বিভিন্ন মানকে একটি মানচিত্র সংজ্ঞায়িত করতে পারে?
জোনাথন ফ্রেচ

@ জোনাথনফ্রেচ সত্য -সিদ্ধান্ত / সমস্যার সংজ্ঞা অনুসারে মিথ্যা, অবিচ্ছিন্ন নয় তবে স্বতন্ত্র এবং সত্যবাদী / মিথ্যা
মিঃ এক্সকোডার

উত্তর:


14

জেলি , 6 4 3 5 4 বাইট

rÆPE

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস চেষ্টা করে দেখুন

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

rÆPE    Main link. Arguments: N, M
r       Yield the range of integers between N and M, inclusive.
 ÆP     For each integer, yield 1 if it is prime, 0 otherwise.
   E    Yield 1 if all items are equal (none in the range were prime,
        or there's only one item).

কাজ করে কারণ দুটি সংখ্যার মধ্যে বিভিন্ন প্রাইম ক্লাস্টার থাকে যদি তাদের মধ্যে একটি প্রাইম থাকে, বা উভয় সংখ্যা নিজেই প্রধান হয়; যদি না উভয় সংখ্যার একই, যা কেস হয় Eআয় 1যাহাই হউক না কেন (একটি একক আইটেমের অ্যারের মধ্যে সব আইটেম সমান)।


7
আপনার প্রোগ্রামগুলির উত্সটি বন্ধুত্বপূর্ণ মনে হচ্ছে না ...
স্ট্যান স্ট্রাম

2

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

{[eqv] @_».&{(($_...0),$_..*)».first(*.is-prime)}}

এটা পরীক্ষা করো

সম্প্রসারিত:

{  # bare block lambda with implicit slurpy input 「@_」

  [eqv]               # see if each sub list is equivalent

    @_».&{            # for each value in the input

      (

        ( $_ ... 0 ), # decreasing Seq
          $_ ..  *    # Range

      )».first(*.is-prime) # find the first prime from both the Seq and Range

    }
}


2

রুবি , 57 54 বাইট

->n,m{[*n..m,*m..n].all?{|x|?1*x=~/^(11+)\1+$/}||n==m}

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

সম্পর্কিত প্রশ্নের সাথে আমার উত্তর (যা আমি এটি ক্লিক করার আগে পর্যন্ত ভুলে গিয়েছিলাম) থেকে ভয়ঙ্কর রেজেক্সের প্রাথমিকতা পরীক্ষাটি ব্যবহার করে এই নম্বরটি কি প্রধান? । যেহেতু আমাদের এন, এম ≥ 3 রয়েছে তাই 1 টির জন্য চেকটি নিদর্শন থেকে সরিয়ে ফেলা যায়, যা বিল্ট-ইন ব্যবহারের চেয়ে বাইট গণনা কম করে।

দ্রষ্টব্য: রেজেক্স প্রাথমিকতা পরীক্ষাটি প্যাথলজিকভাবে, হাস্যকরভাবে অদক্ষ। আমি বিশ্বাস করি এটি কমপক্ষে ও (এন!), যদিও এখনই এটি নির্ধারণ করার আমার কাছে সময় নেই। এটি 100,001 পরীক্ষা করতে বারো সেকেন্ড সময় নিয়েছে এবং আমি এটি বাতিল করার আগে, 1,000,001 এ পাঁচ বা দশ মিনিটের জন্য পিষে ফেলেছিলাম। আপনার নিজের ঝুঁকিতে ব্যবহার / অপব্যবহার।


1
যে হারে এটি সম্ভবত । আপনি জানেন, 100001! = 2824257650254427477772164512240315763832679701040485762827423875723843380680572028502730496931545301922349718873479336571104510933085749261906300669827923360329777024436472705878118321875571799283167659071802605510878659379955675120386166847407407122463765792082065493877636247683663198828626954833262077780844919163487776145463353109634071852657157707925315037717734498612061347682956332369235999129371094504360348686870713719732258380465223614176068 ... (Warning: The output exceeded 128 KiB and was truncated.)যা চালাতে মিলেনিয়া লাগবে।
ব্যবহারকারী 202729

2

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

\b(.+)¶\1\b

.+
$*
O`
+`\b(1+)¶11\1
$1¶1$&
A`^(11+)\1+$
^$

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

\b(.+)¶\1\b

উভয় ইনপুট যদি একই হয় তবে কেবল সবকিছু মুছুন এবং শেষে আউটপুট 1 এ পড়ুন।

.+
$*

অ্যানারিতে রূপান্তর করুন।

O`

ক্রম অনুসারে বাছাই করুন।

+`\b(1+)¶11\1
$1¶1$&

সমস্ত সংখ্যার ব্যাপ্তি প্রসারিত করুন।

A`^(11+)\1+$

সমস্ত সম্মিলিত নম্বর মুছুন।

^$

যদি কোনও সংখ্যা না থাকে, আউটপুট 1, অন্যথায় 0।


2

প্যারি / জিপি, ২৮ বাইট

v->s=Set(v);#s<2||!primes(s)

সমস্ত পরীক্ষার কেস সহ এটি অনলাইনে ব্যবহার করে দেখুন!

রিটার্ন 0বা 1(স্বাভাবিক PARI / GP "বুলিয়ান" মান)।

ব্যাখ্যা:

vদুটি সংখ্যা Nএবং Mস্থানাঙ্ক হিসাবে অবশ্যই একটি ভেক্টর (বা একটি কলাম ভেক্টর, বা একটি তালিকা) হতে হবে । উদাহরণস্বরূপ [8, 10]। তারপরে sএই সংখ্যাগুলি থেকে তৈরি "সেট" হবে যা হয় এক-সমন্বিত ভেক্টর (যদি N==M) হয়, বা অন্যথায় বাছাই করা এন্ট্রি সহ একটি দ্বি-সমন্বিত ভেক্টর ।

তারপরে যদি #sস্থানাঙ্কের সংখ্যা sমাত্র একটি হয় তবে আমরা পাই 1(সত্যবাদী)। অন্যথায়, primesবন্ধ প্রান্তরে থেকে সমস্ত প্রাইমগুলির একটি ভেক্টর থেকে ফিরিয়ে s[1]দেবে s[2]। অস্বীকৃতি !যে দেব 1যদি ভেক্টর, খালি থাকে তখন এটি এক বা একাধিক নন-জিরো এন্ট্রি (এখানে এক বা একাধিক মৌলিক) এর একটি ভেক্টর অস্বীকৃতি দেব 0


2

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

বাক্য গঠন সিনট্যাক্সে ইনপুট নেয় (a)(b)। রিটার্ন 0বা 1

a=>b=>a==b|!(g=k=>a%--k?g(k):k<2||a-b&&g(a+=a<b||-1))(a)

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

কিভাবে?

a => b =>                 // given a and b
  a == b |                // if a equals b, force success right away
  !(g = k =>              // g = recursive function taking k
    a % --k ?             //   decrement k; if k doesn't divide a:
      g(k)                //     recursive calls until it does
    :                     //   else:
      k < 2 ||            //     if k = 1: a is prime -> return true (failure)
      a - b &&            //     if a equals b: neither the original input integers nor
                          //     any integer between them are prime -> return 0 (success)
      g(a += a < b || -1) //     else: recursive call with a moving towards b
  )(a)                    // initial call to g()

2

আর , 63 46 বাইট

- জিউসেপ্পে লিখেছেন 17

function(a,b)!sd(range(numbers::isPrime(a:b)))

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

ETHProductions এর জেলি সমাধান খুব সহজ অ্যাপ্লিকেশন । মূল আকর্ষণীয় গ্রহণটি হ'ল এটি ছিল যে বুুলিয়ান ভেক্টরগুলির any(x)==all(x)সাথে সমান min(x)==max(x)



এছাড়াও, যেহেতু min(x)==max(x)সমস্ত উপাদান is_prime(a:b)সমান যাচাইয়ের সমতুল্য, আমরা এই শেষ কৌশলটি প্যাকেজ বা প্যাকেজ সহ 46 বাইটে নামিয়ে আনতে পারি । primesnumbers
জিউসেপ

2

সি (জিসিসি), 153 146 বাইট

i,B;n(j){for(B=i=2;i<j;)B*=j%i++>0;return!B;}
#define g(l,m,o)for(l=o;n(--l););for(m=o;n(++m););
a;b;c;d;h(e,f){g(a,b,e)g(c,d,f)return!(a-c|b-d);}

-7 জনাথন ফ্রেচ থেকে

এমন একটি ফাংশন সংজ্ঞায়িত করে hযা দুটি intসেকেন্ডে লাগে এবং 1সত্য এবং 0মিথ্যার জন্য প্রত্যাবর্তন করে

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

n এটি এমন একটি ফাংশন যা এর তর্কটি প্রধান না হলে 1 প্রদান করে।

g এটি একটি ম্যাক্রো যা তার প্রথম এবং দ্বিতীয় যুক্তি পরবর্তী তৃতীয় আর্গুমেন্টের চেয়ে কম (যথাক্রমে) এর চেয়ে কম এবং বৃহত্তর সেট করে

hনা gউভয় ইনপুট এবং কিনা তা পরীক্ষা আউটপুট একই জন্য।


return a==c&&b==d;হতে পারে return!(a-c|b-d);
জোনাথন ফ্রেচ


@ জোনাথানফ্রেচ টিআইও লিঙ্কটি স্থির করেছে।
pizzapants184


1

এপিএল (ডায়ালগ ইউনিকোড) , 18 + 16 = 34 24 বাইট

CY'dfns'
∧/=/4 ¯4∘.pco

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

10 বাইটের জন্য আদমকে ধন্যবাদ ।

লাইন ⎕CY'dfns'( সি ওপি ওয়াই ) আমদানি করতে প্রয়োজন হয় dfns ( ynamic unctio NS ) সংগ্রহ, ইনস্টল করা ডিফল্ট Dyalog APL সঙ্গে অন্তর্ভুক্ত।

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

∧/=/4 ¯4∘.pco  Main function. This is a tradfn body.
               The 'quad' takes the input (in this case, 2 integers separated by a comma.
          pco   The 'p-colon' function, based on p: in J. Used to work with primes.
    4 ¯4∘.      Applies 4pco (first prime greater than) and ¯4pco (first prime smaller than) to each argument.
  =/            Compares the two items on each row
∧/              Applies the logical AND between the results.
                This yields 1 iff the prime clusters are equal.

1

পাইথন 2 , 87 86 বাইট

lambda*v:v[0]==v[1]or{1}-{all(v%i for i in range(2,v))for v in range(min(v),max(v)+1)}

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


আমি আপনার সেট ব্যবহার পছন্দ করি, যদিও এটি 87 বাইটের প্রয়োজন হয় না
জোনাথন ফ্রেচ 21

@ জোনাথানফ্রেচ আমি সেটটি ব্যবহার করে এটি 86 এ পেয়েছি
ovs



0

গণিত, 39 27 26 বাইট

Equal@@#~NextPrime~{-1,1}&

সম্প্রসারিত:

                         &  # pure function, takes 2-member list as input
       #~NextPrime~{-1,1}   # infix version of NextPrime[#,{-1,1}], which
                            # finds the upper and lower bounds of each
                              argument's prime clusters
Equal@@                     # are those bounds pairs equal?

ব্যবহার:

Equal@@#~NextPrime~{-1,1}& [{8, 10}]
(*  True  *)

Equal@@#~NextPrime~{-1,1}& [{6, 8}]
(*  False  *)

Equal@@#~NextPrime~{-1,1}& /@ {{8, 10}, {20, 22}, {65, 65}, 
    {73, 73}, {86, 84}, {326, 318}, {513, 518}}
(*  {True, True, True, True, True, True, True}  *)

Equal@@#~NextPrime~{-1,1}& /@ {{4, 5}, {6, 8}, {409, 401}, 
    {348, 347}, {419, 418}, {311, 313}}
(*  {False, False, False, False, False, False}  *)

অবদানসমূহ: -১২ বাইট জেনি_ম্যাথি , -১ বাইট বাই মার্টিন ইন্ডার


এটি কেবল পরবর্তী প্রধানমন্ত্রী পরীক্ষা করে। নেক্সটপ্রিম চেষ্টা করুন [#, {- 1,1}]
J42161217

@ জেনি_ম্যাথি: আমি দেখছি আপনি ঠিক আছেন। "348, 347" পরীক্ষার কেস দ্বারা ধরা পড়ে, যা এখন পাস করার জন্য প্রদর্শিত হয়।
এরিক টাওয়ার

27 বাইট: Equal@@NextPrime[#,{-1,1}]&ইনপুট হিসাবে নেয় [{N,M}]বা আপনি যদি মূল ইনপুট রাখতে চান তবে এই 30 বাইট ব্যবহার করুন:Equal@@NextPrime[{##},{-1,1}]&
J42161217

@ জেনি_ম্যাথি: আচ্ছা, ..., নির্দিষ্ট ইনপুটটি দুটি পূর্ণসংখ্যার, একটি তালিকা নয়, তাই ...
এরিক টাওয়ার

1
@ এরিক টাওয়ার্স একটি তালিকা নিচ্ছেন ঠিক আছে । এছাড়াও, আপনি ইনফিক্স নোটেশন ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারেন #~NextPrime~{-1,1}
মার্টিন ইন্ডার

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