পূর্বে সম্মিলিত নম্বর


16

সিকোয়েন্স সংজ্ঞা

ধনাত্মক পূর্ণসংখ্যার একটি ক্রম a(n)নিম্নলিখিত হিসাবে তৈরি করুন:

  1. a(0) = 4
  2. a(n)প্রথমটি ব্যতীত প্রতিটি শব্দটি হ'ল সংখ্যার নিম্নতম সংখ্যা যা নিম্নলিখিতগুলি সন্তুষ্ট করে:
    ক) a(n)একটি সংমিশ্রণ সংখ্যা,
    খ) a(n) > a(n-1), এবং
    গ) a(n) + a(k) + 1প্রতিটিটির জন্য একটি সংমিশ্রণ সংখ্যা 0 <= k < n।

সুতরাং আমরা দিয়ে শুরু a(0) = 4। পরের এন্ট্রি, a(1)হতে হবে 9। এটা হতে পারে না 5বা 7ঐ যেহেতু যৌগিক নয়, এবং এটা হতে পারে না 6বা 8কারণ 6+4+1=11যৌগিক নয় এবং 8+4+1=13যৌগিক নয়। অবশেষে, 9+4+1=14যা যৌগিক, তাই a(1) = 9।

পরবর্তী এন্ট্রি, a(2)হতে হবে 10, যেহেতু এটি চেয়ে সবচেয়ে ছোট সংখ্যা বৃহত্তর এর 9সঙ্গে 10+9+1=20এবং 10+4+1=15উভয় যৌগিক।

পরবর্তী প্রবেশের জন্য 11এবং 13উভয়ই বাইরে আছেন কারণ তারা সম্মিলিত নয়। যেটি যৌগিক নয় 12তা বাইরে রয়েছে 12+4+1=17। যেটি যৌগিক নয় 14তা বাইরে রয়েছে 14+4+1=19। সুতরাং, 15ক্রম পরবর্তী মেয়াদ কারণ 15যৌগিক এবং 15+4+1=20, 15+9+1=25এবং 15+10+1=26সব একে যৌগিক, তাই a(3) = 15।

এই ক্রমের প্রথম 30 টি পদ এখানে রয়েছে:

4, 9, 10, 15, 16, 22, 28, 34, 35, 39, 40, 46, 52, 58, 64, 70, 75, 76, 82, 88, 94, 100, 106, 112, 118, 119, 124, 125, 130, 136

এটি OEIS A133764 ।

চ্যালেঞ্জ

একটি ইনপুট পূর্ণসংখ্যা দেওয়া হয় n, nএই ক্রমের মধ্যম আউটপুট ।

বিধি

  • আপনি 0- বা 1-ভিত্তিক সূচক বেছে নিতে পারেন। আপনার জমা দেওয়ার মধ্যে দয়া করে বলুন।
  • ইনপুট এবং আউটপুটটি আপনার ভাষার স্থানীয় সংখ্যার সাথে মানানসই fit
  • ইনপুট এবং আউটপুট যে কোনও সুবিধাজনক পদ্ধতি দ্বারা দেওয়া যেতে পারে ।
  • হয় একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন গ্রহণযোগ্য। যদি কোনও ফাংশন হয় তবে আপনি আউটপুটটি মুদ্রণের পরিবর্তে ফিরে আসতে পারেন।
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • এটি তাই সাধারণ গল্ফিংয়ের সমস্ত নিয়ম প্রয়োগ হয় এবং সংক্ষিপ্ততম কোড (বাইটে) জয়ী হয়।

3
শিরোনাম: সংখ্যার পূর্বে সম্মিলিত হিসাবে পরিচিত।
— যাদু অক্টোপাস উরন

@ ম্যাজিক অ্যাক্টপাস ইউরান এর যদি শিল্প বা সঙ্গীত নিয়ে কিছু করার থাকে তবে আমি এটি নিয়ে যাব। তবে, আমি বর্তমানে আমার যে শিরোনাম পেয়েছি তা আঁকড়ে রাখব।
— অ্যাডমবর্কবর্ক

একটি রসিকতা ছিল আরও বেশি;)।
— ম্যাজিক অক্টোপাস উরন

উত্তর:


5

হুশ , 11 বাইট

!üȯṗ→+fotpN

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

ব্যাখ্যা

!üȯṗ→+fotpN  Implicit input, a number n.
          N  The list of positive integers [1,2,3,4,..
      f      Keep those
         p   whose list of prime factors
       ot    has a nonempty tail: [4,6,8,9,10,12,..
 ü           De-duplicate wrt this equality predicate:
     +       sum
    →        plus 1
  ȯṗ         is a prime number.
             Result is [4,9,10,15,16,..
!            Get n'th element.

2

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

{(4,->+_{first {none($^a X+0,|(_ X+1)).is-prime},_.tail^..*}...*)[$_]}

এটি 0-সূচিকৃত করে দেখুন

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

{  # bare block lambda with implicit parameter $_

  (  # generate the sequence

    4, # seed the sequence

    -> +_ { # pointy block that has a slurpy list parameter _ (all previous values)

      first

      {  # bare block with placeholder parameter $a

        none(                 # none junction
            $^a               # placeholder parameter for this inner block
          X+                
            0,                # make sure $a isn't prime
            |( _ X+ 1 )       # check all a(k)+1
        ).is-prime            # make sure none are prime
      },

      _.tail ^.. *            # start looking after the previous value
    }

    ...                       # keep generating values until

    *                         # never stop

  )[$_]                       # index into the sequence
}

2

পাইথন 2 , 112 107 বাইট

বাইট করার জন্য মিঃ এক্সকোডারকে ধন্যবাদ ।

n=-1,4;v=5
exec"while any(all((v-~k)%i for i in range(2,v))for k in n):v+=1\nn+=v,;v+=1\n"*input()
print~-v

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


পাইথন 2 , 115 109 বাইট

n=-1,4;v=4;x=input()
while x:v+=1;k=1^any(all((v-~k)%i for i in range(2,v))for k in n);n+=(v,)*k;x-=k
print v

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


2

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

1-ইন্ডেক্স

f=(n,a=[-1,p=4])=>a[n]||f(n,a.some(x=>(P=n=>n%--x?P(n):x<2)(x-=~p),p++)?a:[...a,p])

ডেমো

মন্তব্য

সাহায্যকারী ফাংশন পি () , ফিরে সত্য যদি এন প্রধান, বা মিথ্যা অন্যথায়:

P = n => n % --x ? P(n) : x < 2

এনবি: এটি অবশ্যই x = n দিয়ে কল করা উচিত ।

প্রধান ফাংশন চ () :

f = (               // given:
  n,                //   n = target index
  a = [-1, p = 4]   //   a = computed sequence with an extra -1 at the beginning
) =>                //   p = last appended value
  a[n] ||           // if a[n] exists, stop recursion and return it
  f(                // otherwise, do a recursive call to f() with:
    n,              //   n unchanged
    a.some(x =>     //   for each value x in a[]:
      P(x -= ~p),   //     rule c: check whether x + p + 1 is prime
                    //     rule a: because a[0] = -1, this will first compute P(p)
      p++           //     rule b: increment p before the some() loop starts
    ) ?             //   end of some(); if truthy:
      a             //     p is invalid: use a[] unchanged
    :               //   else:
      [...a, p]     //     p is valid: append it to a[]
  )                 // end of recursive call



0

জাভা 8, 186 173 বাইট

n->{int a[]=new int[n+1],r=a[n]=4;a:for(;n>0;)if(c(++r)<2){for(int x:a)if(x>0&c(r-~x)>1)continue a;a[--n]=r;}return r;}int c(int n){for(int i=2;i<n;n=n%i++<1?0:n);return n;}

0-ইন্ডেক্স।
দুর্ভাগ্যক্রমে প্রাইম-চেকস (বা এই ক্ষেত্রে অ্যান্টি-প্রাইম / সংমিশ্রিত চেকগুলি) জাভাতে এতটা সস্তা নয় ..

ব্যাখ্যা:

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

n->{                     // Method with integer as both parameter and return-type
  int a[]=new int[n+1],  //  Integer-array of size `n+1`
      r=a[n]=4;          //  Start the result and last item at 4
  a:for(;n>0;)           //  Loop as long as `n` is larger than 0
    if(c(++r)<2){        //   Raise `r` by 1, and if it's a composite:
      for(int x:a)       //    Inner loop over the array
        if(x>0           //     If the item in the array is filled in (non-zero),
           &c(r-~x)>1)   //     and if `r+x+1` is a prime (not a composite number):
          continue a;}   //      Continue the outer loop
      a[--n]=r;}         //    Decrease `n` by 1, and put `r` in the array
  return r;}             //  Return the result

// Separated method to check if a given number is a composite number
// (It's a composite number if 0 or 1 is returned, otherwise it's a prime.)
int c(int n){for(int i=2;i<n;n=n%i++<1?0:n);return n;}

0

রুবি + -rprime, 85 75 বাইট

->n{*a=x=4
n.times{x+=1;!x.prime?&&a.none?{|k|(x+k+1).prime?}?a<<x:redo}
x}

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

একটি ল্যাম্বদা 0-সূচকযুক্ত নবম উপাদানটি প্রদান করছে।

-10 বাইট: ব্যবহার করুন ... এবং একটি শর্তাধীন শৃঙ্খলার redoপরিবর্তে একটি টার্নারি অপারেটরloopbreak

Ungolfed:

->n{
  *a=x=4                         # x is the most recent value: 4
                                 # a is the list of values so far: [4]
  n.times{                       # Repeat n times:
    x += 1                       # Increment x
    !x.prime? &&                 # If x is composite, and
      a.none?{|k|(x+k+1).prime?} #   for all k, a(n)+x+1 is composite,
      ? a<<x                     # Add x to a
      : redo                     # Else, restart the block (go to x+=1)
  }
  x                              # Return the most recent value
}


0

সি (জিসিসি) ,  140  138 বাইট

দুটি জোড় বাঁচানোর জন্য @ জোনাথন ফ্রেঞ্চকে ধন্যবাদ!

c(n,i){for(i=1;++i<n;)i=n%i?i:n;i=i>n;}f(n){int s[n],k,j,i=0;for(*s=k=4;i++-n;i[s]=k)for(j=!++k;j-i;)2-c(k)-c(k-~s[j++])?j=!++k:f;n=n[s];}

0-ইন্ডেক্স

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


++k,j=0দ্বিগুণ হতে পারে j=!++k, 138 বাইট ।
— জোনাথন ফ্রেচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.