প্রতিকূল বিভাজক সংখ্যা


31

ইতিবাচক পূর্ণসংখ্যার কিছু বিভাজন একে অপরকে সত্যই ঘৃণা করে এবং তারা এক বা একাধিক সাধারণ সংখ্যা ভাগ করতে পছন্দ করে না।

এই পূর্ণসংখ্যাগুলিকে প্রতিকূল বিভাজক সংখ্যা ( এইচডিএন ) বলা হয়

উদাহরণ

নম্বর 9566রয়েছে 4: ভাজক 1, 2, 4783 and 9566
(যেমন আপনি দেখতে পারেন, তাদের দু'জন আর একই অঙ্ক ভাগ )।
সুতরাং, 9566 একটি হল এইচ ostile ডি ivisor এন আমভের

নম্বর 9567হল না HDN রোগের কারণ এটির ভাজক ( 1, 3, 9, 1063, 3189, 9567) কিছু সাধারণ ডিজিটের শেয়ার করুন।

এখানে প্রথম কয়েকটি এইচডিএন রয়েছে

1,2,3,4,5,6,7,8,9,23,27,29,37,43,47,49,53,59,67,73,79,83,86,87,89,97,223,227,229,233,239,257,263,267,269,277,283,293,307,337...       


কার্য

উপরের তালিকাটি চলছে এবং আপনার কাজটি হল নবম এইচডিএন অনুসন্ধান করা

ইনপুট

একটি ধনাত্মক পূর্ণসংখ্যা nথেকে 1থেকে4000

আউটপুট

nth HDN রোগের

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

এখানে কিছু 1 ইনডেক্সযুক্ত পরীক্ষার মামলা রয়েছে।
বিভ্রান্তি এড়াতে আপনি আপনার উত্তরে কোন সূচক সিস্টেমটি ব্যবহার করবেন দয়া করে তা জানান।

input -> output     
 1        1     
 10       23       
 101      853     
 1012     26053     
 3098     66686      
 4000     85009      

এটি , তাই বাইট জিতে সর্বনিম্ন স্কোর।

সম্পাদনা

ভাল খবর! আমি আমার ক্রমটি OEIS এবং ...
প্রতিকূল বিভাজক নম্বরগুলিতে জমা দিয়েছি এখন OEIS A307636


1
আমি মনে করি বর্গ সংখ্যাগুলি সংখ্যার সর্বনিম্ন বৈরী হবে ।
ফ্রেমবট

3
@ জোফ্র্যামবাচ যা আমি বুঝতে পারি না। নিখুঁত-স্কোয়ার এইচডিএন রয়েছে। কিছুটা বড় উদাহরণের জন্য, 94699599289এর বর্গক্ষেত্রে 307733বিভাজক রয়েছে [1, 307733, 94699599289]যা দেখায় এটি একটি এইচডিএন। আমার শত্রু মনে হচ্ছে।
জেপ্প স্টিগ নীলসন

@ জেপ্পস্টিগ নিলসন আরও ছোট উদাহরণের জন্য, কেন কেবল নয় 49? উপাদানগুলি [1, 7, 49]প্রতিকূল হিসাবে যোগ্যতা অর্জন করে ... বা, ভাল 4,: [1, 2, 4]...
ড্যারেল হফম্যান

@DarrelHoffman না উল্লেখ করতে, বর্গাকার সংখ্যা 1ভাজক তালিকা সঙ্গে [1]। (সম্ভবত বড় এইচডিএন আরও আকর্ষণীয়?)
জেপ্প স্টিগ নীলসেন

আমি বিভাজক49 থাকার অর্থ ব্যাখ্যা করেছি , যা কেবল অঙ্কগুলি ভাগ করে না তবে একই সংখ্যা are হয়েছে কারণের [7, 7]49 [1, 7, 49]
Frambot

উত্তর:


9

05 এ বি 1 ই , 12 10 বাইট

µNNÑ€ÙSDÙQ

-2 ধন্যবাদ বাইট @Emigna

1-ইন্ডেক্স

এটি অনলাইনে চেষ্টা করুন বা বেশিরভাগ পরীক্ষার কেস যাচাই করুন (শেষ দুটি পরীক্ষার কেস বাদ পড়েছে, কারণ তাদের সময় শেষ হয়েছে)।

ব্যাখ্যা:

µ           # Loop while the counter_variable is not equal to the (implicit) input yet:
 N          #  Push the 0-based index of the loop to the stack
  NÑ        #  Get the divisors of the 0-based index as well
            #   i.e. N=9566 → [1,2,4783,9566]
            #   i.e. N=9567 → [1,3,9,1063,3189,9567]
    €Ù      #  Uniquify the digits of each divisor
            #   → ["1","2","4783","956"]
            #   → ["1","3","9","1063","3189","9567"]
      S     #  Convert it to a flattened list of digits
            #   → ["1","2","4","7","8","3","9","5","6"]
            #   → ["1","3","9","1","0","6","3","3","1","8","9","9","5","6","7"]
       D    #  Duplicate this list
        Ù   #  Unique the digits
            #   → ["1","2","4","7","8","3","9","5","6"]
            #   → ["1","3","9","0","6","8","5","7"]
         Q  #  And check if it is still equal to the duplicated list
            #   → 1 (truthy)
            #   → 0 (falsey)
            #  And if it's truthy: implicitly increase the counter_variable by 1
            # (After the loop: implicitly output the top of the stack,
            #  which is the pushed index)

2
আপনি আমাকে এবার মারধর করলেন। আমার µNNÑ€ÙSDÙQজন্য 10 ছিল
এমিগিনা

2
@ এমিগনা আহ, আমি মাত্র একটি বিকল্প নিয়ে কাজ করছিলাম µ, তাই আপনি আমাকে সমস্যাটি বাঁচালেন । ;)
কেভিন ক্রুইজসেন

এটি কাব্যিকভাবে সুস্পষ্ট
উজ্জ্বল ডন


6

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

1-ইন্ডেক্স।

n=>eval("for(k=0;n;n-=!d)for(s=d=++k+'';k%--d||d*!s.match(`[${s+=d,d}]`););k")

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

দ্রুততম সংস্করণ, by৯ বাইট

n=>{for(k=0;n;n-=!d)for(s=d=++k+'';k%--d||d*!s.match(`[${s+=d,d}]`););return k}

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

কিভাবে?

একটি পূর্ণসংখ্যা দেওয়া >0 , আমরা স্ট্রিং বিল্ড গুলি সব ভাজক এর সংযুক্তকরণের যেমন

যেহেতু সর্বদা নিজেই একটি বিভাজক, গুলি এর সূচনা (একটি স্ট্রিং দ্বারা জোর করে) এবং প্রথম বিভাজক যা আমরা চেষ্টা করি তা হল =-1

প্রতিটি ভাজক জন্য এর , আমরা পরীক্ষা কোন অঙ্ক কিনা খুঁজে পাওয়া যেতে পারে গুলি চালু করার মাধ্যমে একটি রেগুলার এক্সপ্রেশন একটি অক্ষর সেট করুন।

উদাহরণ

  • গুলি="956647832" ,=1"956647832".match(/[1]/)মিথ্যা
  • গুলি="9567" ,=3189"9567".match(/[3189]/)সত্যবাদী

মন্তব্য

এটি eval()পাঠযোগ্যতার জন্য সংস্করণ ছাড়া

n => {                   // n = input
  for(                   // for() loop:
    k = 0;               //   start with k = 0
    n;                   //   go on until n = 0
    n -= !d              //   decrement n if the last iteration resulted in d = 0
  )                      //
    for(                 //   for() loop:
      s =                //     start by incrementing k and
      d = ++k + '';      //     setting both s and d to k, coerced to a string
      k % --d ||         //     decrement d; always go on if d is not a divisor of k
      d *                //     stop if d = 0
      !s.match(          //     stop if any digit of d can be found in s
        `[${s += d, d}]` //     append d to s
      );                 //
    );                   //   implicit end of inner for() loop
                         // implicit end of outer for() loop
  return k               // return k
}                        //

6

জেলি , 10 বাইট

ÆDQ€FQƑµ#Ṫ

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

-1 বাইট এরিক দ্য আউটগলফারকে ধন্যবাদ

এসটিডিআইএন থেকে ইনপুট নেয়, যা জেলির পক্ষে অস্বাভাবিক তবে যেখানে nfindব্যবহৃত হয় normal

ÆDQ€FQƑµ#Ṫ  Main link
         Ṫ  Get the last element of
        #   The first <input> elements that pass the filter:
ÆD          Get the divisors
  Q€        Uniquify each (implicitly converts a number to its digits)
    F       Flatten the list
     QƑ     Does that list equal itself when deduplicated?

2-ইন্ডেক্স


এটি কি 2-সূচকযুক্ত? এটি আমার সাথে ঠিক আছে তবে দয়া করে এটি অন্যের জন্য জানান
J42161217

এটি আপনার পরীক্ষার কেসগুলি যাই হোক না কেন, তাই 1
হাইপার নিউট্রিনো

3
না এটা না। 101 রিটার্ন 839. এবং 102 -> 853. এটি সূক্ষ্মভাবে কাজ করে তবে এটি 2-ইনডেক্সড
J42161217

1
@ J42161217 কি অপেক্ষা? আমি অনুমান করি যখন আমি nfindএটি স্থানান্তরিত
করলাম

1
⁼Q$হিসাবে একই
এরিক আউটগল্ফার

4

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

{(grep {/(.).*$0/R!~~[~] grep $_%%*,1..$_},^∞)[$_]}

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

1-ইন্ডেক্স।

/(.).*$0/ পুনরাবৃত্ত অঙ্কের সাথে যে কোনও সংখ্যার সাথে মেলে।

grep $_ %% *, 1 .. $_$_বর্তমানে তালিকায় সদস্যতার জন্য চেক করা সংখ্যার সমস্ত বিভাজকের একটি তালিকা প্রদান করে।

[~]এই সমস্ত অঙ্ক একসাথে একত্রিত করে এবং তারপরে R!~~বাম দিকের প্যাটার্নের বিপরীতে ডান দিকের স্ট্রিংয়ের সাথে মেলে। ( ~~এটি সাধারণ ম্যাচ অপারেটর, !~~সেই অপারেটরের Rপ্রত্যাখ্যান এবং এটি একটি মেটাওপ্রেটার যা আর্গুমেন্টকে অদলবদল করে !~~))




3

ওল্ফ্রাম ভাষা 103 বাইট

1-ইনডেক্সিং ব্যবহার করে। আমি অবাক হয়েছি এর এত কোড দরকার required

(k=1;u=Union;n=2;l=Length;While[k<#,If[l[a=Join@@u/@IntegerDigits@Divisors@#]==l@u@a&@n,k++];n++];n-1)&

আপনি কি দয়া করে একটি টিআইও লিঙ্ক যুক্ত করতে পারেন যাতে প্রত্যেকে আপনার উত্তরটি পরীক্ষা করতে পারে?
J42161217

95 বাইট: (n=t=1;While[t<=#,If[!Or@@IntersectingQ@@@Subsets[IntegerDigits@Divisors@n,{2}],t++];n++];n-1)&আমি কোনও উত্তর পোস্ট করার পরিকল্পনা করছি না তাই আমি এটি এখানে রেখে যাব
J42161217

@ জে 212161217, আমি টিআইওতে কোডটি সাফল্য ছাড়াই পাওয়ার চেষ্টা করছিলাম। আমি অনুপস্থিত কিছু কৌশল আছে।
ডেভিডসি

@ J42161217, আপনার কোডটি কাজ করছে বলে মনে হচ্ছে তবে রানটাইমের চেয়ে 3 গুণ সময় নেয়। আপনি এটি নিজের হিসাবে জমা দিতে পারেন। (সম্ভবত আমি আপনার উদাহরণ থেকে টিআইও বাস্তবায়ন করতে শিখব))
ডেভিডসি

সত্যিই খুব দ্রুত! আপনার লিঙ্কটি এখানে এটি চেষ্টা করুন!
J42161217

3

পাওয়ারশেল , 112 বাইট

for($a=$args[0];$a-gt0){$z=,0*10;1..++$n|?{!($n%$_)}|%{"$_"|% t*y|sort -u|%{$z[+"$_"]++}};$a-=!($z|?{$_-ge2})}$n

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

1-ইনডেক্সড ইনপুট নেয় , স্টোরগুলিতে $args[0]প্রবেশ করে $a, যেগুলি হিট না হওয়া অবধি লুপ হয় 0। প্রতিটি পুনরাবৃত্তি, আমরা দশ-উপাদান অ্যারে শূন্য আউট $z(আমাদের অঙ্ক গণনা করতে ব্যবহৃত)। তারপরে আমরা বিভক্তদের সাথে আমাদের তালিকাটি তৈরি করি 1..++$n|?{!($n%$_)}। প্রতিটি বিভাজকের জন্য, আমরা এটিকে একটি স্ট্রিংয়ে "$_"কাস্ট করেছি, tওচারআরাকে y, এবং sortসেই জাতীয় অঙ্কগুলি -uজাতীয় পতাকা সহকারে ( তারপরে আমরা যথাযথ অঙ্কের সংখ্যা বৃদ্ধি করি $z। এর পরে, আমরা হ্রাস $aশুধুমাত্র যদি $zরয়েছে 0s এবং 1গুলি (অর্থাত, আমরা একটি HDN রোগের পেয়েছি)। যদি আমরা আমাদের forলুপটি শেষ করে ফেলেছি , এর অর্থ আমরা যথাযথ এইচডিএন খুঁজে পেয়েছি, তাই আমরা $nপাইপলাইনে রেখেছি এবং আউটপুট অন্তর্ভুক্ত।


আপনি কিছু বাইট সংরক্ষণ করতে পারেন: $a-=!($z-ge2)পরিবর্তে$a-=!($z|?{$_-ge2})
mazzy


3

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

1-ইন্ডেক্স

f=lambda n,x=1,s="",l="",d=1:n and(d>x+1and f(n-1,x+1)or{*s}&{*l}and f(n,x+1)or f(n,x,s+l,(1-x%d)*str(d),d+1))or~-x

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

এটি প্রচুর পুনরাবৃত্তি ব্যবহার করে ; এমনকি পুনরাবৃত্তির সীমাবদ্ধতা বৃদ্ধি পেয়েও তা করতে পারে না f(30)। আমি মনে করি এটি আরও গল্ফযোগ্য হতে পারে, এবং এর (1-x%d)সাথে প্রতিস্থাপন করার জন্য আমি কিছু সন্ধান করার চেষ্টা করেছি , তবে কিছুই নিয়ে আসতে পারিনি ( -~-x%dভুল নজরে রয়েছে)। শেভ করা যায় এমন কোনও বাইট প্রশংসিত হয়।

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

# n: HDNs to go
# x: Currently tested number
# s: String of currently seen divisor digits
# l: String of digits of last tried divisor if it was a divisor, empty string otherwise
# d: Currently tested divisor

f=lambda n,x=1,s="",l="",d=1:n and(                    # If there are still numbers to go
                             d>x+1and f(n-1,x+1)or     # If the divisors have been
                                                       #  exhausted, a HDN has been found
                             {*s}&{*l}and f(n,x+1)or   # If there were illegal digits in
                                                       #  the last divisor, x isn't a HDN
                             f(n,x,s+l,(1-x%d)*str(d),d+1)
                                                       # Else, try the next divisor, and
                                                       #  check this divisor's digits (if
                                                       #  if is one) in the next call
                             )or~-x                    # Else, return the answer

2

ব্র্যাচল্যাগ (ভি 2), 14 বাইট

;A{ℕfdᵐc≠&}ᶠ⁽t

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

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

ব্যাখ্যা

"এটি কি প্রতিকূল বিভাজক নম্বর?" কোড:

ℕfdᵐc≠
ℕ       number is ≥0 (required to match the question's definition of "nth solution")
 f      list of all factors of the number
   ᵐ    for each factor
  d       deduplicate its digits
    c   concatenate all the deduplications with each other
     ≠  the resulting number has no repeated digits

এটি মূলত @ আনলেলেটেড স্ট্রিংয়ের মতোই পরিণত হয়েছিল, যদিও আমি এটি স্বাধীনভাবে লিখেছিলাম।

" সমাধানের নবম সমাধান "

;A{…&}ᶠ⁽t
    &      output the successful input to
  {  }ᶠ    the first n solutions of the problem
       ⁽   taking <n, input> as a pair
;A         form a pair of user input and a "no constraints" value
        t  take the last solution (of those first n)

এটি এমন একটি ক্ষেত্রে যেখানে নবম আউটপুট উত্পাদনের জন্য প্রয়োজনীয় র‍্যাপারটি প্রতিটি আউটপুটকে ঘুরে দেখার জন্য কোডের তুলনায় উল্লেখযোগ্যভাবে দীর্ঘ হয় :-)

আমি @ রিলেটেড স্ট্রিংয়ের স্বাধীনভাবে এই মোড়ক নিয়ে এসেছি। এটি একই দৈর্ঘ্য এবং একই নীতিতে কাজ করে তবে কোনওভাবে ভিন্নভাবে লেখা শেষ হয়। এর উন্নতির আরও সম্ভাবনা রয়েছে, কারণ আমরা Aকিছু সীমাবদ্ধ পরিবর্তনশীল দ্বারা প্রতিস্থাপনের মাধ্যমে আমরা কী কী মূল্যবোধের জন্য নিখরচায় খুঁজছিলাম তার মধ্যে সীমাবদ্ধতা যুক্ত করতে পারি , তবে সম্ভাব্য সীমাবদ্ধতা ভেরিয়েবলগুলির কোনওটিই বাইটগুলি সংরক্ষণ করে না। (যদি কোনও "ননেনিজেটিভ পূর্ণসংখ্যা" সীমাবদ্ধ পরিবর্তনশীল থাকে তবে আপনি এটিটি প্রতিস্থাপন করতে পারেন Aএবং অযথা তৈরি করার মাধ্যমে একটি বাইট সংরক্ষণ করতে পারেন ))


এটি 2-সূচকযুক্ত?
ফ্রাউনফ্রগ

2

জাভা 10, 149 139 138 126 125 120 119 বাইট

n->{int r=0,i,d;for(;n>0;n-=d){var s="1";for(r+=d=i=1;i++<r;)if(r%i<1){d=s.matches(".*["+i+"].*")?0:d;s+=i;}}return r;}

@ আর্নল্ডের জাভাস্ক্রিপ্ট উত্তরের দ্বারা অনুপ্রাণিত .matchesহয়ে .containsপ্রতি অঙ্কের পরিবর্তে 10 বাইট ব্যবহার করুন । -5 বাইট @ ভ্যালুআইঙ্ককে ধন্যবাদ -1 বাইট ধন্যবাদ @ এসিলিংক্যাটকে

1-ইন্ডেক্স

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

ব্যাখ্যা:

n->{                 // Method with integer as both parameter and return-type
  int r=0,           //  Result-integer, starting at 0
      i,             //  Index integer
      d;             //  Decrement integer
  for(;n>0;          //  Loop until the input `n` is 0:
      n-=d){         //    After every iteration: decrease `n` by the decrement integer `d`
    var s="1";       //   Create a String `s`, starting at "1"
    for(r+=d=i=1;    //   (Re)set the decrement and index integers to 1,
                     //   and increase the result by 1 as well
        i++<r;)      //   Inner loop `i` in the range [2, r]:
      if(r%i<1){     //    If `r` is divisible by `i`:
        d=s.matches(".*["+i+"].*")?
                     //     If string `s` contains any digits also found in integer `i`:
           0         //      Set the decrement integer `d` to 0
          :d;        //     Else: leave `d` unchanged
        s+=i;}}      //     And then append `i` to the String `s`
  return r;}         //  After the loops, return the result `r`


@ ভালুআইঙ্ক ধন্যবাদ! :)
কেভিন ক্রুইজসেন

1

ব্র্যাচল্যাগ , 16 বাইট

g{∧0<.fdᵐc≠∧}ᵘ⁾t

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

খুব ধীর, এবং দ্বিগুণ হিসাবে এটি যদি এটি কোনও । 1-ইন্ডেক্স।

                    The output
               t    is the last
             ᵘ⁾     of a number of unique outputs,
g                   where that number is the input,
 {          }       from the predicate declaring that:
     .              the output
    <               which is greater than
   0                zero
  ∧                 (which is not the empty list)
      f             factorized
        ᵐ           with each factor individually
       d            having duplicate digits removed
          ≠         has no duplicate digits in
         c          the concatenation of the factors
           ∧        (which is not the output).

1
আপনি যদি কেবল সেই ব্যাখ্যাটি বাক্য হিসাবে পড়েন তবে ...
ফায়ারকিউজ

আমি প্লেইন ইংরেজি, যা সাধারণত শেষ পর্যন্ত শুধু তাদের উপার্জন আমার ব্যাখ্যা লিখতে চেষ্টা কঠিন পড়তে
অসম্পর্কিত স্ট্রিং


1

জাপট ভি 2.0a0, 17 বাইট

_=â ®sâìUµZ¶â}f1

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

এই ব্র্যাচল্যাগ উত্তর পোর্ট ।

ক্রেডিট: 4 বাইট সঞ্চয় মোটামুটিভাবে শেগিকে ধন্যবাদ জানায় যে আরও অনেকগুলি বাইটের দিকে এগিয়ে যাওয়ার জন্য আরও ভাল সমাধানের প্রস্তাব করেছিল :)


আসল উত্তর 28 বাইট পদ্ধতির:

Èâ¬rÈ«è"[{Y}]" ©X+Y}Xs)«U´Ãa

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

এই জাভাস্ক্রিপ্ট উত্তর পোর্ট ।



ভাল - আমি এর «আগে শর্টকাটটি ব্যবহার করিনি :) আমি বুঝতে পারি যে শেগি যদি আমার স্কোরের উপর কয়েকটি মুষ্টি বাইট দ্বারা উন্নতি করে তবে আমি অবশ্যই (কিছুটা) শালীন হব?
ডানা

এটা তোলে করতে 20 মধ্যে সম্পন্ন করা (হয়তো কম) B7 একটি কিছুটা ভিন্ন পদ্ধতি নিযুক্ত।
শেগি

হাহ - আমার ধারণা আমি খুব শীঘ্রই কথা বলেছিলাম :) হ্যাঁ, অন্যান্য গল্ফিং ল্যাংগুলির কয়েকটিতে খুব সংক্ষিপ্ত সমাধান রয়েছে।
ডানা



0

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

{(grep {!grep *>1,values [(+)] map *.comb.Set,grep $_%%*,1..$_},1..*)[$_]}

0-ইন্ডেক্স। টিআইওতে কেবল প্রথম তিনটি কেস তালিকাভুক্ত করা হয়েছে কারণ বাকিগুলি পরীক্ষা করা খুব ধীর।

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



0

রুবি , 110 97 92 84 বাইট

@ Arnauld এর জাভাস্ক্রিপ্ট রেজেক্স চেকটি লাভ করে 13 বাইটস ।

timesএকটি হ্রাসকারকের জন্য লুপটি অদলবদলের জন্য -5 বাইট এবং a while

combinationঅন্যান্য উত্তরের মতো আরও কিছু পাওয়ার জন্য খনন করে -8 বাইট

->n{x=0;n-=1if(s='';1..x+=1).all?{|a|x%a>0||(e=/[#{a}]/!~s;s+=a.to_s;e)}while n>0;x}

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



0

জে , 87 59 বাইট

-28 বাইট ফ্রাউনফ্রোগের জন্য ধন্যবাদ

0{(+1,1(-:~.)@;@(~.@":&.>@,i.#~0=i.|])@+{.)@]^:(>{:)^:_&0 0

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

মূল

জে , 87 বাইট

[:{:({.@](>:@[,],([:(-:~.)[:-.&' '@,/~.@":"0)@((]#~0=|~)1+i.)@[#[)}.@])^:(#@]<1+[)^:_&1

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

বাবা।

এটি নৃশংসভাবে জেদের জন্য দীর্ঘ, তবে আমি এটিকে নামানোর দুর্দান্ত উপায় দেখছি না।

ব্যাখ্যা

এটি কী ঘটছে তা দেখতে কয়েকজন সহায়ক ক্রিয়াগুলি প্রবর্তন করতে সহায়তা করে:

d=.(]#~0=|~)1+i.
h=. [: (-:~.) [: -.&' '@,/ ~.@":"0
  • d তার যুক্তিটির সমস্ত বিভাজকের একটি তালিকা প্রদান করে
  • hআপনাকে বলে যে এ জাতীয় তালিকা বৈরী। এটি প্রতিটি সংখ্যাকে স্ট্রাইফাইজ এবং ডুপ্লিকেট করে ~.@":"0, যা বর্গক্ষেত্রের ম্যাট্রিক্স প্রদান করে যেখানে সংক্ষিপ্ত সংখ্যাগুলি ফাঁক দিয়ে প্যাড করা হয়। -.&' '@,/ম্যাট্রিক্সকে ফ্ল্যাট করে এবং স্পেসগুলি সরিয়ে দেয় এবং শেষ পর্যন্ত (-:~.)আপনাকে বলে দেয় যে এই সংখ্যাটি পুনরাবৃত্তি করেছে কিনা ।

এই দুই সহায়ক সহ আমাদের সামগ্রিক, নিরবচ্ছিন্ন ক্রিয়াটি হয়ে যায়:

[: {: ({.@] (>:@[ , ] , h@d@[ # [) }.@])^:(#@] < 1 + [)^:_&1

এখানে আমরা একটি তালিকা বজায় রেখেছি যার প্রধানটি আমাদের "বর্তমান প্রার্থী" (যা শুরু হয় 1) এবং যার লেজ এখনও পর্যন্ত পাওয়া সমস্ত প্রতিকূল সংখ্যা।

আমরা >:@[প্রতিটি পুনরাবৃত্তিতে তালিকার শীর্ষকে বাড়িয়ে তুলি, এবং প্রতিকূল হলে কেবলমাত্র "বর্তমান প্রার্থী" যুক্ত করব h@d@[ # [। আমাদের তালিকার দৈর্ঘ্য 1 + এন না হওয়া পর্যন্ত আমরা এটি চালিয়ে যাচ্ছি ^:(#@] < 1 + [)^:_

অবশেষে, যখন আমরা শেষ হয়ে গেলাম, আমরা এই তালিকার শেষ সংখ্যাটি ফিরিয়ে [: {:দেব যা নবম প্রতিকূল সংখ্যা।




এটি দুর্দান্ত, অনেক ধন্যবাদ। এটি অতিক্রম করবে এবং আজ রাতে আপডেট করবে
জোনাস

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