ফ্যাক্টর-দরিদ্র সংখ্যা


20

যদি কোনও ধনাত্মক পূর্ণসংখ্যার এর উত্তরসূরি এবং পূর্বসূরীর চেয়ে কম (প্রধানত গুণনগুলি গণনা করা) কম কারণ থাকে তবে আমরা এটিকে একটি ফ্যাক্টর-দরিদ্র সংখ্যা বলবএন>2

অন্য কথায়, ইন এবং , যেখানে অনন্য মৌলিক উত্পাদক সংখ্যা ।ω(এন)<ω(এন-1)ω ( এন ) এনω(এন)<ω(এন+ +1)ω(এন)N

কার্য

আপনি নিম্নলিখিত I / O ফর্ম্যাটগুলির মধ্যে চয়ন করতে পারেন:

  • একটি পূর্ণসংখ্যা নিন এবং N ফ্যাক্টর-দরিদ্র সংখ্যাটি আউটপুট করুন । আপনি যদি এটিকে বেছে নেন , এন হয় 0 বা 1 ইনডেক্সড হতে পারে।NNthN
  • একটি ধনাত্মক পূর্ণসংখ্যা নিন এবং প্রথম এন ফ্যাক্টর-দরিদ্র সংখ্যাগুলি আউটপুট করুন ।NN
  • ক্রমটি অনির্দিষ্টকালের জন্য মুদ্রণ করুন।

যে কোনও মানক পদ্ধতিতে কোনও প্রোগ্রামিং ভাষায় আপনি ইনপুট নিতে পারেন এবং আউটপুট সরবরাহ করতে পারেন , নোট গ্রহণের সময় এই লুফোলগুলি ডিফল্টরূপে নিষিদ্ধ। এটি কোড গল্ফ, তাই নিয়মের মধ্যে থাকা সংক্ষিপ্ততম জমাটি জয়।

আমি পৃথক পরীক্ষার কেসগুলি অন্তর্ভুক্ত করব না, কারণ প্রতিযোগিতা করার পদ্ধতিগুলি ভিন্ন, তবে আপনি এই ক্রমের প্রথম 100 টি শর্তাদি উল্লেখ করতে পারেন, এটি OEIS A101934 :

11, 13, 19, 23, 25, 27, 29, 37, 41, 43, 47, 49, 53, 59, 61, 64, 67, 71, 73, 79, 81, 83, 89, 97, 101, 103, 107, 109, 113, 121, 125, 131, 137, 139, 149, 151, 155, 157, 163, 167, 169, 173, 179, 181, 191, 193, 197, 199, 211, 221, 223, 227, 229, 233, 239, 241, 243, 251, 259, 263, 265, 269, 271, 277, 281, 283, 289, 293, 307, 309, 311, 313, 317, 331, 337, 341, 343, 347, 349, 353, 359, 361, 365, 367, 371, 373, 379, 383, 389, 397, 401, 407, 409, 419, 421, 431, 433, 439, 441, 443

উদাহরণস্বরূপ, এই ক্রমানুসারে ঘটে কারণ ω ( 25 ) = 1 (5), ω ( 26 ) = 2 (2 এবং 13) এবং ω ( 24 ) = 2 (2 এবং 3), তাই ω ( 25 ) < ω ( 24 ) এবং ω ( 25 ) < ω ( 26 )25ω(25)=1ω(26)=2ω(24)=2ω(25)<ω(24)ω(25)<ω(26)


আমি কি n = প্রতিটি মানের আগে একটি আউটপুট আউটপুট করতে পারি ?
স্টেডিবক্স

@ স্টেডিবক্স স্কেচি, তবে আমি এটির অনুমতি দেব: - /
মিঃ এক্সকোডার

আমি এটি বিকল্প সংস্করণ হিসাবে যুক্ত করেছি।
স্টিডিবক্স

উত্তর:


7

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

⟨+₁≡-₁⟩{ḋdl}ᵐ⌋>~↰₂?ẉ⊥

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

অসীম মুদ্রণ।

ব্যাখ্যা

⟨+₁≡-₁⟩                  Fork: The output of the fork is [Input + 1, Input -1]
       {   }ᵐ            Map:
        ḋdl                (predicate 2) the output is the length of the prime decomposition
                           of the input with no duplicates
             ⌋           Take the minimum result of that map
              >          This minimum is bigger than…
               ~↰₂?      …the output of predicate 2 with Input as input
                  ?ẉ     Write Input followed by a new line if that's the case
                    ⊥    False: backtrack and try another value for Input

5

জেলি , 13 12 বাইট

Cr~ÆvÐṂN⁼Wø#

প্রথম এন ফ্যাক্টর-দরিদ্র সংখ্যা মুদ্রণ করে ।

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

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

Cr~ÆvÐṂN⁼Wø#  Main link. No arguments.

          ø   Wrap the links to the left into a chain and begin a new chain.
           #  Read an integer n from STDIN and call the chain to the left with
              arguments k = 0, 1, 2, ... until n of them return a truthy value.
              Return those n values of k as an array.
C                 Complement; yield -k+1.
  ~               Bitwise NOT; yield -k-1.
 r                Range; yield [-k+1, -k, -k-1].
     ÐṂ           Yield those elements of [-k+1, -k, -k-1] for which the link to
                  the left returns the minimal value.
   Æv                 Count the number of unique prime factors.
                      Note that, for a negative argument, Æv counts -1 as well, and
                      0 is counted as a/the factor of 0. Negating the the arguments
                      eliminates the edge case 1 (no factors), which would be a
                      false positive otherwise.
                  For a factor-poor number, this yields [-k].
       N          Take the negatives of the resulting integers.
         W        Wrap; yield [k].
        ⁼         Test the results to both sides for equality.

5

পাইথন 2 , 123 119 বাইট

q=lambda n:sum(n%i<all(i%j for j in range(2,i))for i in range(2,n+1))
i=2
while 1:
 i+=1
 if q(i-1)>q(i)<q(i+1):print i

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


@ ফ্রাইআম দ্য এজম্যান ধন্যবাদ! এমনকি আমি আপনার পরামর্শটি ব্যবহার করি নি, এটি আমাকে অন্য পদ্ধতির জন্য অনুপ্রাণিত করেছিল যা 4 বাইট সংরক্ষণ করেছিল: ডি
রড

নিস! আমি নিশ্চিত ছিলাম যে দুটি
কুরুচিপূর্ণ ল্যাম্বডাস

4

এমএটিএল , 26 24 22 বাইট

`T@3:q+YFg!sdZSd0>?@QD

ক্রমটি অনির্দিষ্টকালের জন্য মুদ্রণ করে।

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

ব্যাখ্যা

`         % Do...while loop
  T       %   Push true. Will be used as loop condition
  @       %   Push (1-based) iteration index, k 
  3:q     %   Push [1 2 3] minus 1, that is, [0 1 2]
  +       %   Add, element-wise. Gives [k k+1 k+2]
  YF      %   Exponents of prime-factor decomposition. Gives a 3-row matrix
  g       %   Convert to logical: non-zero numbers become 1
  !s      %   Transpose, sum of each column. Gives a row vector of 3 elements, 
          %   which are the number of unique prime factors of k, k+1 and k+2 
  d       %   Consecutive differences. Gives a row vector of 2 elements
  ZS      %   Sign: replaces each number by -1, 0 or 1
  d       %   Consecutive difference. Gives a single number
  0>      %   Is it positive?
  ?       %   If so
    @Q    %     Push k+1
    D     %     Display
          %   End (implicit)
          % End (implicit). The stack contains true, which (is consumed and)
          % causes an infinite loop

3

হুশ , 22 বাইট

f(ΠtSM<←ṙ1mȯLup§…←→)tN

ক্রমটি অনির্দিষ্টকালের জন্য মুদ্রণ করে, এটি অনলাইনে চেষ্টা করুন বা প্রথম এন দেখুন !

বিকল্পভাবে পরিবর্তে §oΛ>←t ব্যবহার করা যেতে পারেΠtSM<←

ব্যাখ্যা

f(                  )tN  -- filter the tail of the naturals ([2,3…]) by:
  ΠtSM<←ṙ1m(Lup)§…←→     -- | takes a number as argument, example 11
                §…       -- | range of..
                  ←      -- | | the argument decremented (10)
                   →     -- | | to the argument incremented (12)
                         -- | : [10,11,12]
          m(   )         -- | map the following (example on 12) ..
              p          -- | | prime factors: [2,2,3]
             u           -- | | deduplicate: [2,3]
            L            -- | | length: 2
                         -- | : [2,1,2]
        ṙ1               -- | rotate by 1: [1,2,2]
    SM<                  -- | map the function (< X) over the list where X is ..
       ←                 -- | | the first element (1)
                         -- | : [0,1,1]
   t                     -- | tail: [1,1]
  Π                      -- | product: 1
                         -- : [11,13,19,23,25,27,29…

3

পাইথ , 14 বাইট

.f!-.ml{Pb}tZh

এখানে চেষ্টা করুন!

এটি প্রথমে ডোপাপের উত্তরের পরামর্শ ছিল , তবে তারা আমাকে এটি আলাদাভাবে পোস্ট করতে বলেছিল

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

.f! -। ml {Pb} tZh | পুরো প্রোগ্রাম। STDIN থেকে ইনপুট নেয়, প্রথম এনটিকে STDOUT এ আউটপুট দেয়।

.ফ | (var: Z) প্রথম এন মানগুলিকে আউটপুট দেয় যা প্রিডিকেটকে সন্তুষ্ট করে।
          । tZh | [জেড - 1, জেড, জেড + 1] তালিকা তৈরি করে।
    .ম | (var: b) ন্যূনতম ফাংশন মান সহ উপাদানগুলি নিন।
        পিবি | প্রধান উপাদান খ।
      l {| নকল করুন, দৈর্ঘ্য পান।
               | ফ্যাক্টর-দরিদ্র সংখ্যার জন্য, এই ফলনটি নিজেই একটি সিঙ্গলটনে আবৃত।
   - | এটি থেকে জেড সরান।
  ! | যৌক্তিক অবহেলা।

3

হাস্কেল, 105 86 বাইট

@ বাইট উইজার্ড, @ ব্রুস ফোর্ট, এবং 19 লাইট বাঁচানোর জন্য @ লাইকনি ধন্যবাদ to

[n|n<-[2..],d n<d(n-1),d n<d(n+1)] d x=[1|n<-[1..x],x`rem`n<1,all((>0).rem n)[2..n-1]]


যখন ব্যবহার rem ==0এবং /=0সঙ্গে relaced যাবে <1এবং >0যথাক্রমে।
গম উইজার্ড

কোনও প্রয়োজন নেই let, dসহায়ক ফাংশন হিসাবে সংজ্ঞা দেওয়া ( গল্ফিংয়ের নিয়মগুলির গাইড দেখুন )। এছাড়াও sumবাদ দেওয়া যেতে পারে তুলনা তালিকা একই কাজ করে। 86 বাইট: এটি অনলাইনে চেষ্টা করুন!
লাইকনি

2

অক্টাভা ,  87   83  79 বাইট

একটি বাইট বাঁচানোর জন্য @ কউজ কোয়াকে ধন্যবাদ এবং তিনটি ছয়টি বাইট সংরক্ষণের জন্য লুইস মেন্ডোকে ধন্যবাদ !

f=@(n)nnz(unique(factor(n)));n=9;while++n if[f(n-1) f(n+1)]>f(n)disp(n);end;end

ক্রমটি অনির্দিষ্টকালের জন্য মুদ্রণ করে।

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

n =প্রতিটি মানের আগে লিডিং সহ 73 বাইট :

f=@(n)nnz(unique(factor(n)));n=9;while++n if[f(n-1) f(n+1)]>f(n)n end;end

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


আমি মনে করি ফাংশনটি একটি কম বাইটের জন্য fহয়ে উঠতে পারে f=@(n)length(unique(factor(n)))
ক্রিটসি লিথোস

2

05 এ বি 1 ই , 14 13 বাইট

নবম ফ্যাক্টর-দরিদ্র সংখ্যা আউটপুট দেয় (1-ইনডেক্সড)

µ3LN+Íf€gÀć›P

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

ব্যাখ্যা

µ                 # loop over N (1,2,3, ...) until counter equals input
 3L               # push the range [1,2,3]
   N+             # add current N
     Í            # subtract 2
      f           # get unique prime factors of each
       €g         # get length of each factor list
         À        # rotate left
          ć       # extract the head
           ›      # check if the remaining elements are strictly greater
            P     # product
                  # if 1, increment counter
                  # implicitly output final N

1
আমি কেবল স্যুইচ করার পরামর্শ দিচ্ছিলাম না µ, তাই আমি অনুমান করি যে আমি কেবল আমার বিকল্পটি উল্লেখ করতে যাচ্ছি - বিকল্প N<N>Ÿহতে পারে 3LN+Í, যদি এটি সহায়তা করে।
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার: একইভাবে, ®XŸN+কাজ করে। বা 0®X)N+কোন ক্ষেত্রে Àপ্রয়োজন হবে না। দুর্ভাগ্যক্রমে তারা সবাই একই বাইট গণনাতে শেষ হয়।
এমিগানা

1

পাইথ, 30 25 বাইট

#=hTI&>l{PhTKl{PT>l{PtTKT

এই আমার প্রথম আসল পাইথ গল্ফ, সুতরাং কোনও মন্তব্য খুব প্রশংসিত।

এক্সকোডারকে একটি বড় ধন্যবাদ!

ব্যাখ্যা

#                         | Loop until error
 =hT                      | Add one to T (initially 10)
    I&                    | If both...
      >l{PhTKl{PT         | The number of unique prime factors of T+1 is greater than that of T (store in K) 
                 >l{PtTK  | And the number of unique prime factors of T-1 is greater than K (from before)
                        T | Then implicitly print T

Tio


14 বাইট: .f!-.ml{Pb}tZh(কপি করে প্রিন্ট প্রথম ঢ) ( .fপ্রথম আহরণ এন মান উপর যে একটি শর্ত সন্তুষ্ট [1,2,3,...]এবং একটি পরিবর্তনশীল ব্যবহার Z, }tZhপূর্ণসংখ্যা পরিসীমা উত্পন্ন [Z - 1 ... Z + 1], .m(সঙ্গে ন্যূনতম ফাংশন মান উপাদানের তালিকা আসতে b), l{Pbস্বতন্ত্র ভাজক গণনা পায়, -পরিত্যাগ Zতালিকা থেকে, !লজিক্যাল অস্বীকৃতি প্রযোজ্য)
জনাব Xcoder

1
@ মিঃ এক্সকোডার, বাহ আমি মনে করি না যে খুব শীঘ্রই আমি কখনই এটি অর্জন করতে পারতাম! আপনি কি বলবেন না যে এটির নিজের উত্তরটি যোগ্য?
ড্যানিয়েল

@ ডপপ ঠিক আছে, আমি আলাদাভাবে পোস্ট করেছি । +1 পাইথ গল্ফিংয়ে স্বাগতম!
মিঃ এক্সকোডার

আপনার পদ্ধতির ব্যবহার করে 25 বাইট
মিঃ এক্সকোডার

নাঃ। hহয় +1, tহয় -1সময়, Kএকটি পরিবর্তনশীল যা ছাড়া নির্ধারিত পরার =। উদাহরণস্বরূপ, K4নির্ধারণ Kকরতে 4। তারপরে আপনি এটি ব্যবহার করে অ্যাক্সেস করতে পারবেন K
মিঃ এক্সকোডার

1

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

0-সূচকযুক্ত নবম ফ্যাক্টর-দরিদ্র সংখ্যা প্রদান করে।

f=(i,n=9)=>(P=(n,i=k=1)=>++k>n?0:n%k?P(n,1):i+P(n/k--,0))(n)>P(++n)&P(n)<P(n+1)&&!i--?n:f(i,n)

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

কিভাবে?

আমরা প্রথমে পি () ফাংশনটি সংজ্ঞায়িত করি যা প্রদত্ত পূর্ণসংখ্যার অনন্য প্রাথমিক গুণকের সংখ্যা প্রদান করে।

P = (                   // P = recursive function taking:
  n,                    //   n = input number to test
  i =                   //   i = flag to increment the number of prime factors
  k = 1                 //   k = current divisor
) =>                    //
  ++k > n ?             // increment k; if k is greater than n:
    0                   //   stop recursion
  :                     // else:
    n % k ?             //   if k is not a divisor of n:
      P(n, 1)           //     do a recursive call with n unchanged and i = 1
    :                   //   else:
      i +               //     add i and
      P(n / k--, 0)     //     do a recursive call with n / k and i = 0; decrement k

মোড়কের কোডটি এখন পড়বে:

f = (                   // given:
  i,                    //   i = input index
  n = 9                 //   n = counter
) =>                    //
  P(n) > P(++n) &       // increment n; if P(n - 1) is greater than P(n)
  P(n) < P(n + 1) &&    // and P(n) is less than P(n + 1)
  !i-- ?                // and we have reached the correct index:
    n                   //   return n
  :                     // else:
    f(i, n)             //   go on with the next value

1

জাপট , ২৯ 27 26 বাইট

এটির সাথে পুরোপুরি খুশি নয় তবে আমার প্রথম প্রয়াসের চেয়ে কমপক্ষে এটি ভাল যা 40 বাইটেরও বেশি ছিল!

Nসিকোয়েন্সে তম সংখ্যাটি আউটপুট করে 1-ইনডেক্স করে।

È=Jõ_+X k â ÊÃé)e>Xo)«´U}a

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


ব্যাখ্যা

পূর্ণসংখ্যার অন্তর্নিহিত ইনপুট U

È                       }a

Xনিম্নলিখিত ক্রিয়াকলাপটি পাস করার পরে সত্যিকারের প্রথম পূর্ণসংখ্যা ফেরত দিন।

=Jõ             )

অ্যারে বরাদ্দ করুন [-1,0,1]থেকে X

 _+X      Ã

সেই অ্যারের প্রতিটি উপাদান একটি ফাংশনের মাধ্যমে পাস করুন যা প্রথমে এর বর্তমান মান যুক্ত করে X

k â Ê

ফলাফলের Êঅনন্য ( â) মূল কারণগুলির ( k) দৈর্ঘ্য ( ) পান ।

é

ফলাফলের অ্যারেটিকে ডানদিকে ঘোরান।

e>Xo)

( o) থেকে শেষ উপাদানটি পপ করুন Xএবং বাকী সমস্ত উপাদান এর চেয়ে বড় কিনা তা পরীক্ষা করুন।

«´U

যদি তাই হয়, হ্রাস Uএবং এটি 0 এর সমান কিনা তা পরীক্ষা করুন।


1

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

n,g=9,lambda m,k=2,p=1:m//k and(m%k<p%k)+g(m,k+1,p*k*k)
while 1:n+=1;g(n-1)>g(n)<g(n+1)!=print(n)

তত্ত্বগতভাবে, এটি অনির্দিষ্টকালের জন্য ক্রমটি মুদ্রণ করে। অনুশীলনে, gশেষ পর্যন্ত পুনরাবৃত্তির সীমা অতিক্রম করে।

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



0

পরিষ্কার , 130 123 117 বাইট

import StdEnv
?n=[1\\q<-[p\\p<-[2..n]|and[gcd p i<2\\i<-[2..p-1]]]|n rem q<1]
f=[n\\n<-[3..]| ?n<min(?(n-1))(?(n+1))]

অনুক্রমের শর্তগুলির অসীম সংখ্যার সমান। যেহেতু এটি সমস্ত নেস্টেড বোধগম্যতা, তাই এটি গ্রাফ হ্রাসের সুবিধাটি খুব ভালভাবে নিতে পারে না এবং এটি এতটা খারাপ অ্যালগরিদমের জন্যও বেশ ধীর।

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


0

এপিএল NARS, 124 বাইট, 62 চর

{(⍵>1E4)∨⍵≤0:¯1⋄x←9+⍳10×⍵⋄⍵↑(∊{v←⍴∘∪∘π¨⍵+2-⍳3⋄2=+/v>2⌷v}¨x)/x}

এটি 1E4 অবধি উত্তর ফিরিয়ে আনবে, তারপরে -1 ত্রুটি ফিরে আসবে; এটি ধরুন যে 9..10 পার্থক্যটি সঠিক সংখ্যাটি নিয়েছে; পরীক্ষা:

  z←{(⍵>1E4)∨⍵≤0:¯1⋄x←9+⍳10×⍵⋄⍵↑(∊{v←⍴∘∪∘π¨⍵+2-⍳3⋄2=+/v>2⌷v}¨x)/x}  
  z 0
¯1
  z 1
11 
  z 20
11 13 19 23 25 27 29 37 41 43 47 49 53 59 61 64 67 71 73 79 

4
প্রায় 150 বাইট?
শেগি

@ শেগি হ্যাঁ এটি একটি আনুমানিক মান; তবে + - গল্ফযুক্তদের জন্য এটি ঠিক ...
রোজলুপি

আমার গণনা অনুসারে এখানে স্কোরটি 147 বাইট, 152 নয় (অক্ষরের সংখ্যা অপ্রাসঙ্গিক)। আরও পঠন: কোডগলফ.মেটা.স্ট্যাকেকেক্সচেঞ্জ
শেগি

@ শেগি 152 নম্বরটি এমন একটি ফাইলের বাইটের আকার হবে যা কেবলমাত্র সেই কোডটি ধারণ করে (অতীতের অনুলিপি করুন, সেই কোডটি একটি নোটপ্যাড (উইন্ডো) নথিতে সংরক্ষণ করুন এবং সেই ফাইলটির "সম্পত্তি" পর্যবেক্ষণ করুন)
রোজলুপি

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