প্রাইম পিপড়া 🐜


50

"প্রাইম পিঁপড়া" একটি বাধা প্রাণী যা পূর্ণসংখ্যার নেভিগেট করে এবং কেবল প্রাইমগুলি অবধি অবধি অবধি ভাগ করে দেয়!


প্রাথমিকভাবে, আমাদের কাছে সমস্ত ইন্টিজার> = 2: সহ একটি অসীম অ্যারে রয়েছে: [2,3,4,5,6,.. ]

pঅ্যারেতে পিপীলিকার অবস্থান হওয়া যাক । প্রাথমিকভাবে, p = 0(অ্যারে 0-সূচকযুক্ত)

প্রতিটি পালা, পিঁপড়ে নীচের দিকে সরানো হবে:

  • যদি A[p]প্রধান হয়, পিপীলিকা পরবর্তী অবস্থানে চলে আসে:p ← p+1
  • অন্যথায়, যদি A[p]একটি যৌগিক সংখ্যা হয় তবে qএর ছোট বিভাজক হতে দিন > ১। আমরা ভাগ A[p]করে qনিই এবং আমরা এতে যুক্ত qকরে থাকি A[p-1]। পিপড়াটি আগের অবস্থানে চলে যায়:p ← p-1

পিপড়ার প্রথম পদক্ষেপ এখানে:

 2  3  4  5  6  7  8  9  ... 
 ^
 2  3  4  5  6  7  8  9  ... 
    ^
 2  3  4  5  6  7  8  9  ... 
       ^
 2  5  2  5  6  7  8  9  ... 
    ^
 2  5  2  5  6  7  8  9  ... 
       ^
 2  5  2  5  6  7  8  9  ... 
          ^
 2  5  2  5  6  7  8  9  ... 
             ^
 2  5  2  7  3  7  8  9  ... 
          ^

আপনার প্রোগ্রামটি nসরানোর পরে পিঁপড়ার অবস্থান আউটপুট করে । (আপনি ধরে নিতে পারেন n <= 10000)

পরীক্ষার কেস:

0 => 0
10 => 6
47 => 9
4734 => 274
10000 => 512

সম্পাদনা করুন। আপনি 1-ইনডেক্সড তালিকাগুলিও ব্যবহার করতে পারেন, উপরের পরীক্ষার ক্ষেত্রে 1, 7, 10, 275, 513 ফলাফলগুলি প্রদর্শন করা গ্রহণযোগ্য।

এটি কোড-গল্ফ, তাই সংক্ষিপ্ততম কোড সহ কোডটি বাইট জেতে।


32
আমি হট নেটওয়ার্ক প্রশ্নগুলিতে যখন দেখলাম তখন সত্যিই আমি আমার পর্দায় একটি পিপীলিকা পেয়েছিলাম।
কোডস জনসন

14
আমি ভাবছি যে ক্রমটি নির্বিচারে বৃহত্তর জন্য সংজ্ঞায়িত করা হয়েছে n(বা যৌগিক কেসটি কখনই প্রাথমিকটির বাম দিকে পিঁপড়ে ঠেলে দিতে পারে 2)।
মার্টিন ইন্ডার

1
@ সুপার চ্যাফাউইন তাই পরীক্ষার ক্ষেত্রে ফলাফল কী হতে পারে: 1,7,10,275,513যদি 1-সূচী বলা হয়? অথবা তাদের এখনও আপনার ফলাফলগুলি মেলাতে হবে to
টম কার্পেন্টার

12
@ মার্টিনএেন্ডার আরেকটি উন্মুক্ত প্রশ্ন হ'ল একটি প্রাইম> 7 শেষ পর্যন্ত ভালোর জন্য পিছনে যেতে পারে কিনা।
আর্নাউল্ড

2
@ আর্নল্ড আউট এন-এন = ১,০০,০০,০০০ (যেখানে পি = ১15১66666661১১) এর বাইরে, এন এবং পি এর সম্পর্ক পি = এন / (এলএন (এন) * লএন (এলএন (এন)) এর খুব নিকটবর্তী is
পেঙ্গুইনো

উত্তর:


11

এলিস , 45 বাইট

/o
\i@/.&wqh!]k.&[&w;;?c]dt.n$k&;[.?~:![?+!kq

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

বেশিরভাগ সরল বাস্তবায়ন।

nঅ্যালিসে লুপিংয়ের সময়গুলি সাধারণত ফেরতের ঠিকানার n-1সময়গুলি চাপ দিয়ে করা হয় , তারপরে প্রতিটি পুনরাবৃত্তির শেষে ফিরে আসার মাধ্যমে k। লুপের মাধ্যমে শেষ সময়, kনির্দেশের আর ফিরে আসার কোথাও নেই, এবং সম্পাদন এগিয়ে চলেছে।

এই kসংখ্যাটি যখন প্রাথমিক সংখ্যাটি হয় তখন তাড়াতাড়ি থামতে একই নির্দেশনা ব্যবহার করে । ফলস্বরূপ, চূড়ান্ত পুনরাবৃত্তি সর্বদা পিঁপড়াকে বামে সরিয়ে রাখবে। এই বাগটির ক্ষতিপূরণ দিতে আমরা n+11-ইনডেক্সেড অ্যারেতে পুনরাবৃত্তি করি যা আমাদের ফলাফলটি ঠিক ফলাফল দেয় (এবং কেসটি n=0বিনামূল্যে দেয় )।


7

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

p=0
A=range(2,input()+2)
for _ in A:
 for q in range(2,A[p]):
	if A[p]%q<1:A[p]/=q;p-=1;A[p]+=q;break
 else:p+=1
print p

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

আহ, বিরল for- elseলুপ! elseদফা যদি শুধুমাত্র executes forশরীর হয় না মাধ্যমে থেকে প্রস্থান break। আমাদের ক্ষেত্রে, এর অর্থ আমরা সমস্তগুলি যাচাই qকরেছিলাম এবং এর মধ্যে কোনওটিই বিভাজন করতে পাইনি p


7

অক্টোটা , 109 103 101 94 বাইট

function i=a(n)i=1;for l=z=2:n+1
if nnz(q=factor(z(i)))>1
z(i--)/=p=q(1);z(i--)+=p;end
i++;end

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

এই কোডটি 1-ইনডেক্সিংয়ে পজিশনটিকে আউটপুট দেবে, সুতরাং পরীক্ষার ক্ষেত্রে আউটপুটগুলি হ'ল:

0 => 1
10 => 7
47 => 10
4734 => 275
10000 => 513

এই সংস্করণটি কিছু অষ্টাভ অপ্টিমাইজেশান ব্যবহার করে তাই ম্যাটল্যাবের সাথে সামঞ্জস্যপূর্ণ নয়। নীচের কোডটি একটি ম্যাটল্যাব সামঞ্জস্যপূর্ণ সংস্করণ।


ম্যাটল্যাব, 130 123 118 117 বাইট

function i=a(n)
z=2:n+1;i=1;for l=z
q=factor(z(i));if nnz(q)>1
z(i)=z(i)/q(1);i=i-1;z(i)=z(i)+q(1);else
i=i+1;end
end

অক্টাভ সংস্করণ হিসাবে 1-ইনডেক্সিং ব্যবহার করে। আমি এটি ম্যাটল্যাবে সমস্ত পরীক্ষার মামলার বিরুদ্ধে পরীক্ষা করেছি। উদাহরণস্বরূপ 100000 এ আউটপুট 3675 (ওয়ান ইনডেক্সিং)।

উপরের কোডটির একটি মন্তব্য করা সংস্করণ:

function i=a(n)
    z=2:n+1;                %Create our field of numbers
    i=1;                    %Start of at index of 1 (MATLAB uses 1-indexing)
    for l=1:n               %For the required number of iterations
        q=factor(z(i));     %Calculate the prime factors of the current element
        if nnz(q)>1         %If there are more than one, then not prime
            z(i)=z(i)/q(1); %So divide current by the minimum
            i=i-1;          %Move back a step
            z(i)=z(i)+q(1); %And add on the minimum to the previous.
        else
            i=i+1;          %Otherwise we move to the next step
        end
    end

আগ্রহের বিষয় হিসাবে, এটি এন এর প্রথম 10000 মানগুলির জন্য পিঁপড়ার অবস্থানগুলি বনাম পুনরাবৃত্তির সংখ্যা।

পিপীলিকা পজিশন

পিপীলিকা সম্ভবত অসীমের দিকে ঝুঁকবে বলে মনে হয়, তবে কে জানে, চেহারাটি প্রতারণামূলক হতে পারে।


  • ম্যাটল্যাব: এর থেকে বন্ধনীগুলি সরিয়ে এর forপরিবর্তে 6 বাইট সংরক্ষণ করা whileহয়েছে if- ধন্যবাদ @ জিউজ্পে pp
  • ম্যাটল্যাব: 2 বাইট সংরক্ষণ করুন - ধন্যবাদ @ সাঞ্চাইজস
  • অষ্টাভে: অষ্টাভে \=এবং +=অপারেশনগুলি ব্যবহার করে 10 বাইট সংরক্ষণ করুন - ধন্যবাদ @ জিউজ্পে
  • অষ্টাভে: সাথে 2 বাইট সংরক্ষণ করুন i++এবং i--- ধন্যবাদ @ লুইস মেন্ডো
  • অষ্টাভে: 7 টি বাইট সংরক্ষণ করুন - ধন্যবাদ @ সাঞ্চাইজস

এটি টিআইওতে কাজ করার জন্য, আমি মনে করি endফাংশনের স্বাক্ষরের সাথে আপনার মিল দরকার
জিউসেপ

@ জিউসেপ আহ, ঠিক আছে ম্যাটল্যাবে পেছনটি optionচ্ছিক end
টম কার্পেন্টার

আপনি i = a (n) ফাংশনটি ব্যবহার না করে শুরুতে @ (n) ব্যবহার করে বেনামে ফাংশন তৈরি করতে পারেন
মিচথান

@ মিচথান এমএটিএলবি-তে এটি করতে পারে না। আমি ভাবি না যে এটি লুপ আছে বলেই এটি অক্টোবায় সম্ভব?
টম কার্পেন্টার

1
endঅষ্টাভেও পিছনের পথটি alচ্ছিক। এখানে এটি কেবলমাত্র প্রয়োজন কারণ ফাংশনের পরে আপনার কোড রয়েছে
লুইস মেন্ডো

6

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

f=(n,a=[p=0])=>n--?f(n,a,(P=n=>++x<n?n%x?P(n):a[a[p]/=x,--p]+=x:p++)(a[p]=a[p]||p+2,x=1)):p

ডেমো

এনবি: সমস্ত পরীক্ষার ক্ষেত্রে এটি পাস করার জন্য আপনার ইঞ্জিনের ডিফল্ট স্ট্যাকের আকার বাড়িয়ে দিতে হতে পারে।

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


6

হাস্কেল , 108 106 94 বাইট

([0]#[2..]!!)
(a:b)#(p:q)=length b:([b#(a+d:div p d:q)|d<-[2..p-1],mod p d<1]++[(p:a:b)#q])!!0

এটি অনলাইন চেষ্টা করুন! ব্যবহারের উদাহরণ: ([0]#[2..]!!) 10ফলন 6(0-সূচকযুক্ত)।

ফাংশন #দুই তালিকা, অ্যারের বিপরীত সামনে পরিচালনা [p-1, p-2, ..., 1]এবং অ্যারে অসীম বাকি [p, p+1, p+2, ...]। এটি অবস্থানগুলির একটি অসীম তালিকা তৈরি করে, যেখান থেকে nএকটি ইনপুট দিয়ে th পজিশনটি ফিরে আসে n

প্যাটার্নটি পিঁপড়ার বর্তমান অবস্থানের মান এবং পূর্ববর্তী অবস্থানের মানের ((a:b)#(p:q))সাথে আবদ্ধ pহয় abঅবস্থান 1 থেকে অ্যারেটির উপসর্গ p-2এবং qঅবস্থান থেকে শুরু হওয়া অসীম বিশ্রাম p+1

আমরা নিম্নলিখিত ভাবে recursive কল একটি তালিকা গঠন করা: আমরা একে ভাজক তাকান dএর p(যা একটির বড় এবং চেয়ে ছোট pআরোহী অনুক্রমে এবং যোগ করুন) b#(a+d:div p d:q)তাদের মধ্যে প্রত্যেকের জন্য, যা বর্তমান মান pদ্বারা বিভক্ত করা হয় dএবং পিপীলিকা প্যাচসমূহ বাম দিকে যেখানে dযুক্ত হয় সেখানে এক ধাপ a। তারপরে আমরা (p:a:b)#qএই তালিকার প্রান্তে সংযোজন করব , যা পিঁপড়াকে ডানদিকে এক ধাপ এগিয়ে নিয়ে যাওয়া নির্দেশ করে।

তারপরে আমরা তালিকা থেকে সেই পুনরাবৃত্ত কলগুলির মধ্যে প্রথমটি নিই এবং বর্তমান অবস্থানটি আগেই সরবরাহ করি, যা উপসর্গের তালিকার দৈর্ঘ্যের সাথে মিলে যায় b। কারণ বিভাজকগুলি আরোহী ক্রমে রয়েছে, পুনরাবৃত্ত কলগুলির তালিকা থেকে প্রথমটি বেছে নেওয়া নিশ্চিত করে যে আমরা সবচেয়ে ছোটটি ব্যবহার করব। অতিরিক্ত হিসাবে, (p:a:b)#qতালিকার শেষের সাথে যুক্ত হওয়ার কারণে, কোনও বিভাজনকারী নেই এবং pএইভাবে প্রধান হলে এটি কেবলমাত্র নির্বাচিত হবে ।

সম্পাদনাগুলি:
-2 বাইটগুলি ক্রমের তালিকাটিকে উতরাই থেকে ক্রমবর্ধমান ক্রমে স্যুইচ করে।
-12 বাইটস একটি কাউন্টার পরিচালনা করার পরিবর্তে, এবং 0-ইনডেক্সিংয়ে স্যুইচ করে একটি অসীম তালিকায় সূচকে জাগার্বের ধারণাকে ধন্যবাদ জানায়।


2
কাউন্টারের আশেপাশে বহন করার পরিবর্তে একটি অসীম তালিকা তৈরি করে এবং সূচি তৈরি করে 96 বাইট
জাগারব

1
@ জগারব অনেক ধন্যবাদ! 0-সূচকগুলিতে স্যুইচ করার সময় এমনকি এটি কেবল 94 বাইট।
লাইকনি

5

টিআই-বেসিক, 108 103 102 98 বাইট

ইনপুট এবং আউটপুট সংরক্ষণ করা হয় Ans। আউটপুটটি 1-সূচকযুক্ত।

Ans→N
seq(X,X,2,9³→A
1→P
For(I,1,N
1→X:∟A(P→V
For(F,2,√(V
If X and not(fPart(V/F:Then
DelVar XV/F→∟A(P
P-1→P
F+∟A(P→∟A(P
End
End
P+X→P
End

আপনি এর একটা বাইট নিতে পারেন fPart(∟A(P)/F:সঙ্গে fPart(F¹∟A(P:। পরের লাইনে একই জিনিস।
স্কট মিলনার

@ স্কটমিলনার যা সর্বদা কার্যকর হয় না। not(fPart(7⁻¹70 হয় তবে not(fPart(7/71
kamoroso94

5

এমএটিএল , 41 বাইট

:Q1y"XHyw)Zp?5MQ}1MtYf1)/H(8MyfHq=*+9M]]&

আউটপুটটি 1-ভিত্তিক। প্রোগ্রামটি অনলাইনে দোভাষীর শেষ পরীক্ষার ক্ষেত্রে সময় বের করে।

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

ব্যাখ্যা

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

সবচেয়ে ছোট বিভাজকটি প্রাথমিক ফ্যাক্টরের পচনতে প্রথম প্রবেশ হিসাবে প্রাপ্ত হয়।

"ডিভাইড" Update অ্যারের সংশ্লিষ্ট এন্ট্রি মুছে যাওয়ার দ্বারা সম্পন্ন করা হয় একটি । "জুড়ুন" আপডেট উপাদান ভিত্তিক যুক্ত করে সম্পন্ন করা হয় একটি একটি অ্যারের যে আকাঙ্ক্ষিত অবস্থানে ছাড়া শূন্য রয়েছে।

:Q        % Implicitly input n. Push array [2 3 ... n+1]. This is the initial array A. 
          % It contains all required positions. Some values will be overwritten
1         % Push 1. This is the initial value for p
y         % Duplicate from below
"         % For each loop. This executes the following n times.
          %   STACK (contents whosn bottom to top): A, p
  XH      %   Copy p into clipboard H
  y       %   Duplicate from below. STACK: A, p, A
  w       %   Swap. STACK: A, A, p
  )       %   Reference indexing. STACK: A, A[p]
  Zp      %   Isprime. STACK: A, false/true
  ?       %   If true (that is, if A[p] is prime)
    5M    %     Push p from automatic clipboard. STACK: A, p
    Q     %     Add 1. STACK: A, p+1
  }       %   Else (that is, if A[p] is not prime)
    1M    %     Push A[p] from automatic clipboard. STACK: A, A[p]
    t     %     Duplicate. STACK: A, A[p], A[p]
    Yf    %     Prime factors, with repetitions. STACK: A, A[p], prime factors of A[p]
    1)    %     Get first element, d. STACK: A, A[p], d
    /     %     Divide. STACK: A, A[p]/d
    H     %     Push p from clipboard H. STACK: A, A[p]/d, p
    (     %     Assignment indexing: write value. STACK: A with A[p] updated
    8M    %     Push d from automatic clipboard.
    y     %     Duplicate from below. STACK: A with A[p] updated, d, A with A[p] updated
    f     %     Find: push indices of nonzero entries.
          %     STACK: A with A[p] updated, d, [1 2 ... n]
    Hq    %     Push p from clipboard H, subtract 1.
          %     STACK: A with A[p] updated, d, [1 2 ... n], p-1
    =     %     Test for equality, element-wise.
          %     STACK: A with A[p] updated, d, [0 ... 0 1 0 ... 0]
    *     %     Multiply, element-wise. STACK: A with A[p] updated, [0 ... 0 d 0 ... 0]
    +     %     Add, element-wise. STACK: A with A[p-1] and A[p] updated
    9M    %     Push p-1 from automatic clipboard.
          %     STACK: A with A[p-1] and A[p] updated, p-1
  ]       %   End if. The stack contains the updated array and index
]         % End for each. Process the next iteration
&         % Specify that the following implicit display function should display only
          % the top of the stack. Implicitly display


3

পারি / জিপি, 87 বাইট

f(n)=A=[2..9^5];p=1;for(i=1,n,q=factor(A[p])[1,1];if(A[p]-q,A[p]/=q;p--;A[p]+=q,p++));p

বেশ স্ব-ব্যাখ্যামূলক (এত গল্ফ-ইশ নয়)। আপনি যদি f(n)=অংশটি গণনা না করেন তবে তা 82 বাইট। আপনি n->(85 বাইট) দ্বারাও শুরু করতে পারেন ।

এটি 1-ইনডেক্সড ভাষা।


সম্পাদনা করুন: পরিবর্তনটি illustrate(n,m)=A=[2..m+1];p=1;for(i=1,n,for(j=1,m,printf("%5s",if(j==p,Str(">",A[j],"<"),Str(A[j]," "))));print();q=factor(A[p])[1,1];if(A[p]!=q,A[p]/=q;p--;A[p]+=q,p++))পিঁপড়ার হাঁটার চিত্রের মুদ্রণ করবে (যথেষ্ট পরিমাণে টার্মিনাল দেওয়া হয়েছে)। উদাহরণস্বরূপ illustrate(150,25)25 টি কলামে প্রথম 150 টি পদক্ষেপ দেবে:

  > 2 <3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2> 3 <4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 3> 4 <5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2> 5 <2 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5> 2 <5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 2> 5 <6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 2 5> 6 <7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 2> 7 <3 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 2 7> 3 <7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 2 7 3> 7 <8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 2 7 3 7> 8 <9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 2 7 3> 9 <4 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 2 7> 6 <3 4 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 2> 9 <3 3 4 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5> 5 <3 3 3 4 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5> 3 <3 3 4 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3> 3 <3 4 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3> 3 <4 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 3> 4 <9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3> 5 <2 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5> 2 <9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5 2> 9 <10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5> 5 <3 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5 5> 3 <10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5 5 3> 10 <11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5 5> 5 <5 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5 5 5> 5 <11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5 5 5 5 5> 11 <12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5 5 5 5 5 11> 12 <13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5 5 5 5> 13 <6 13 14 15 16 17 18 19 21 21 22 23 24 25 26
   2 5 5 3 3 5 5 5 5 5 13> 6 <13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5 5 5 5> 15 <3 13 14 15 16 17 18 19 21 21 22 23 24 25 26
   2 5 5 3 3 5 5 5> 8 <5 3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5 5> 7 <4 5 3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5 5 7 74 4 <5 3 13 14 15 16 17 18 19 19 21 21 22 23 24 25 26
   2 5 5 3 3 5 5> 9 <2 5 3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 5> 8 <3 2 5 3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3> 7 <4 3 2 5 3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3 7> 4 <3 2 5 3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3 3> 9 <2 3 2 5 3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 3> 6 <3 2 3 2 5 3 13 14 15 16 17 18 19 21 21 22 23 24 25 26
   2 5 5> 5 <3 3 2 3 2 5 3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5> 3 <3 2 3 2 5 3 13 14 15 16 17 18 19 21 21 22 23 24 25 26
   2 5 5 5 3> 3 <2 3 2 5 3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3> 2 <3 2 5 3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2> 3 <2 5 3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3> 2 <5 3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2> 5 <3 13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 5> 3 <13 14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 5 3> 13 <14 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 5 3 13> 14 <15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 5 3> 15 <7 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 5> 6 <5 7 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2> 7 <3 5 7 15 16 17 18 19 19 21 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 7> 3 <5 7 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 7 3> 5 <7 15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 7 7 5 5> 7 <15 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 7 7 5 5> 15 <16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 7 7 5 5> 10 <5 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 7 3> 7 <5 5 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 2 7 7 3 7> 5 <5 16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 7 7 7 5> 5 <16 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 7 7 7 5 5> 16 <17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 7 7 7 7> 7 <8 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 2 2 7 3 7 5 7> 8 <17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 2 7 7 7 7> 9 <4 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 7 7 7> 8 <3 4 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 7 3> 9 <4 3 4 17 18 19 21 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 2 7> 6 <3 4 3 4 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 3 2> 9 <3 3 4 3 4 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3> 5 <3 3 3 4 3 4 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5> 3 <3 3 4 3 4 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 5 3> 3 <3 4 3 4 17 18 19 21 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 5 3 3> 3 <4 3 4 17 18 19 21 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 5 3 3 3> 4 <3 4 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 5 3 3> 5 <2 3 4 17 18 19 21 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 5 3 3 5> 2 <3 4 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 5 3 3 5 2> 3 <4 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 3 3> 4 <17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 3 3 3 5 5 2> 5 <2 17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 3 3 3 5 5 2 5> 2 <17 18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 2 17 17 <18 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 2 17> 18 <19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 5 5 3 3 5 5 5 2> 19 <9 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 19 19> 9 <19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 5 22> 22 <3 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 5 3 3 5 2 5> 4 <11 3 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 3 3 3 5 5 2> 7 <2 11 3 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 5 5 3 3 5 2 7> 2 <11 3 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 2> 11 <3 19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 2 11> 3 <19 20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 7 7 11 11 3> 19 <20 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 3 3 5 5 2 7 2 11 3 19> 20 <21 22 23 24 25 26
   2 5 5 5 3 3 2 3 3 3 5 5 2 7 2 11 3> 21 <10 21 22 23 24 25 26
   2 5 5 5 3 3 2 2 5 5 3 3 5 2 7 2 11> 6 <7 10 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 2> 13 <3 7 10 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 2 13> 3 <7 10 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 2 13 3> 7 <10 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 2 13 3 7> 10 <21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 2 13 3> 9 <5 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 2 13> 6 <3 3 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 2> 15 <3 3 5 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7> 5 <5 3 3 5 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5> 5 <3 3 5 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5> 3 <3 5 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3> 3 <5 21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 3> 5 <21 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 3 5> 21 <22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 3> 8 <7 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3> 5 <4 7 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 5> 4 <7 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3> 7 <2 7 22 23 24 25 26
   2 5 5 5 3 3 2 2 3 5 3 3 5 2 2 7 5 5 3 7> 2 <7 22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 7 2> 7 <22 23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 7 2 7> 22 <23 24 25 26
   2 5 5 5 3 3 2 3 3 3 3 5 5 2 7 5 5 3 7 2> 9 <11 23 24 25 26
   2 5 5 5 3 3 2 3 3 3 3 5 5 2 7 5 5 3 7> 5 <3 11 23 24 25 26
   2 5 5 5 3 3 2 2 3 5 3 3 5 5 2 7 5 5 3 7 5> 3 <11 ​​23 24 25 26
   2 5 5 5 3 3 2 3 3 3 3 5 5 2 7 5 5 3 7 5 3> 11 <23 24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 7 5 3 11> 23 <24 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 7 5 3 11 23> 24 <25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 7 5 3 11> 25 <12 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 7 5 3> 16 <5 12 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 7 5> 5 <8 5 12 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 7 5 5> 8 <5 12 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 7 5> 7 <4 5 12 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 7 5 7> 4 <5 12 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 7 5> 9 <2 5 12 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3 7> 8 <3 2 5 12 25 26 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5 3> 9 <4 3 2 5 12 25 26 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 5> 6 <3 4 3 2 5 12 25 26 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5> 7 <3 3 4 3 2 5 5 25 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7> 3 <3 4 3 2 5 12 25 26 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3> 3 <4 3 2 5 12 25 26 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3 3> 4 <3 2 5 12 25 26 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3> 5 <2 3 2 5 12 25 26 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3 5> 2 <3 2 5 12 25 26
   2 5 5 5 3 3 2 2 3 5 3 3 5 2 2 7 5 7 3 5 2> 3 <2 5 12 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 2 2 7 5 7 3 5 2 3> 2 <5 12 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3 5 2 3 2> 5 <12 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3 5 2 3 2 5> 12 <25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3 5 2 3 2> 7 <6 25 26
   2 5 5 5 3 3 2 2 3 5 3 3 5 5 2 7 5 7 3 5 2 3 2 7> 6 <25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3 5 2 3 2> 9 <3 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3 5 2 3> 5 <3 3 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3 5 2 3 5> 3 <3 25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3 5 2 2 5 5 3> 3 <25 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3 5 2 2 5 5 3 3> 25 <26
   2 5 5 5 3 3 2 3 3 3 3 5 5 2 7 5 7 3 5 2 2 5 5 3> 8 <5 26
   2 5 5 5 3 3 2 3 5 3 3 5 5 2 7 5 7 3 5 2 3 5> 5 <4 5 26
   

2

পাইথন 2 , 142 127 বাইট

T=range(2,input()+2);p=0
for _ in T:
 m=T[p];d=min(k for k in range(2,m+1)if m%k<1);p+=1
 if d<m:T[p-1]/=d;p-=2;T[p]+=d
print p

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




@ ফিলিপনার্দিবাটিস্তা দুর্ভাগ্যক্রমে, আপনার পরামর্শটি পরীক্ষার মামলায় কাজ করবে বলে মনে হচ্ছে নাn<=4
শার্লক

2

গণিত, 118 103 বাইট

(s=Range[2,5^6];t=1;Do[If[PrimeQ@s[[t]],t++,s[[t]]/=(k=#2&@@ Divisors@s[[t]]);s[[t-1]]+=k;t--],#];t-1)&


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

মার্টিন ইন্ডার 15 বাইট সংরক্ষণ করেছেন


আপনি সামনে একটি বিপথগামী জায়গা পেয়েছেন Divisors, আপনি ইনফিক্স স্বরলিপি ব্যবহার করতে পারেন Doএবং আপনি কেবল (1-ভিত্তিক ফলাফল) tএর পরিবর্তে ফিরে আসতে পারেন t-1
মার্টিন ইন্ডার

2

পাইথন 3 , 158 149 133 বাইট

কোডটি সমস্ত পরীক্ষার ক্ষেত্রে কাজ করে তা নিশ্চিত করার জন্য এটি এক বা দুটি quirks সহ একটি সরল পদ্ধতিগত বাস্তবায়ন। আমি ব্যবহার [*range(2,n+9)]তা নিশ্চিত করার জন্য একটি যথেষ্ট বড় (ব্যতীত জন্য n<3, n+9যথেষ্ট বেশী)। elseদফা পুরাতন ভাগ A[p]দ্বারা d, decrements p, এবং তারপর যোগ dনতুন A[p], যা স্পষ্টভাবে খারাপ কোডিং অভ্যাস। অন্যথায়, বেশ সোজা। গল্ফিং পরামর্শ স্বাগত!

সম্পাদনা: -9 বাইট sympyহ্যাভার্ড হামেলকে ধন্যবাদ না দিয়ে। ফিলিপ নার্দি বাতিস্তা থেকে -১৪ বাইট, জোনাথন ফ্রেচের পাইথন ২ উত্তর থেকে কিছু সংকেত থেকে -6 বাইট

p,_,*A=range(int(input())+2)
for _ in A:
 m=A[p];d=min(k for k in range(2,m+1)if m%k<1);p+=1
 if d<m:A[p-1]//=d;p-=2;A[p]+=d
print(p)

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



এটি একটি সম্পূর্ণ প্রোগ্রাম করে 148 বাইট
ফিলিপ নারদী

if d-m:A[p]...এবং else:p+=1একটি বাইট সংরক্ষণ করতে
ফিলিপ নারদী

143 বাইটelse বিবৃতিটি সরিয়ে
ফিলিপ নারদী

elseবিবৃতি অপসারণের পরে , ফাংশন সংস্করণে বাইটগুলির মধ্যে কোনও পার্থক্য নেই
ফিলিপ নারদী

2

পিএইচপি, 102 + 1 বাইট

for($a=range(2,$argn);$argn--;$d<$a[+$p]?$a[$p--]/=$d+!$a[$p]+=$d:$p++)for($d=1;$a[+$p]%++$d;);echo$p;

পাইপ হিসাবে চালনা করুন-R বা এটি অনলাইনে চেষ্টা করুন

ইনপুট জন্য খালি আউটপুট 0; আক্ষরিক জন্য +পরে সন্নিবেশ করুনecho0

অথবা এই 1-ইনডেক্সড সংস্করণ (103 + 1 বাইট) ব্যবহার করুন:

for($a=range($p=1,$argn);$argn--;$d<$a[$p]?$a[$p--]/=$d+!$a[$p]+=$d:$p++)for($d=1;$a[$p]%++$d;);echo$p;

2

আর , 123 বাইট

একটি সরল বাস্তবায়ন। এটি একটি ফাংশন হিসাবে সরবরাহ করা হয়, যা ইনপুট হিসাবে চালনার সংখ্যা নেয় এবং পজিশন পিটি প্রদান করে।

এটি ক্রমটির উপরে লুপ করে এবং নিয়ম অনুসারে পয়েন্টারটিকে সামনে এবং পিছনে নিয়ে যায়। আউটপুট 0-ভিত্তিক।

একটি দ্রষ্টব্য: কোনও সংখ্যার x এর ক্ষুদ্রতম প্রাথমিক গুণকটি খুঁজতে, এটি 0 থেকে x পর্যন্ত সমস্ত পূর্ণসংখ্যার সাথে x এর মডুলাসকে গণনা করে। এটি তখন 0 সমান মডুলাস সহ সংখ্যাগুলি বের করে, যা সর্বদা [0,1, ..., x] হয়। তৃতীয় সংখ্যাটি যদি x না হয় তবে এটি x এর মধ্যে ক্ষুদ্রতম প্রাথমিক গুণক।

p=function(l){w=0:l;v=w+1;j=1;for(i in w){y=v[j];x=w[!y%%w][3]
if(x%in%c(NA,y))j=j+1
else{v[j]=y/x;j=j-1;v[j]=v[j]+x}}
j-2}

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


2

সি (জিসিসি), 152 148 বাইট

minified

int f(int n){int*A=malloc(++n*4),p=0,i,q;for(i=0;i<n;i++)A[i]=i+2;for(i=1;i<n;i++){for(q=2;A[p]%q;q++);if(A[p++]>q){A[--p]/=q;A[--p]+=q;}}return p;}

কিছু মন্তব্য দিয়ে গঠিত

int f(int n) {
  int *A = malloc(++n * 4), p = 0, i, q;
  // Initialize array A
  for (i = 0; i < n; i++)
    A[i] = i + 2;
  // Do n step (remember n was incremented)
  for (i = 1; i < n; i++) {
    // Find smallest divisor
    for (q = 2; A[p] % q; q++)
      ;
    if (A[p++] > q) {
      A[--p] /= q;
      A[--p] += q;
    }
  }
  return p;
}

পরীক্ষার জন্য প্রধান কাজ

#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv) {
  if (argc != 2)
    return 2;
  int n = atoi(argv[1]);
  int p = f(n);
  printf("%d => %d\n", n, p);
  return 0;
}

প্রতিটি পদক্ষেপ দেখানোর জন্য

  1. ডিসপ্লে ঘোষণা করুন () এর ভিতরে চ ()

    int f(int n) {
      int *A = malloc(++n * 4), p = 0, i, q;
      void display(void) {
        for (int i=0; i < p; i++) {
          printf(" %d", A[i]);
        }
        printf(" \033[1;31m%d\033[m", A[p]);
        if (p+1 < n)
          printf(" %d", A[p+1]);
        printf("\n");
      }
      ...
  2. কল প্রদর্শন ()

      A[i] = i + 2;
    display();
  3. কল প্রদর্শন ()

      }
      display();
    }

আপনি এটিকে অ্যারে হিসাবে ঘোষণা করে এবং লুপগুলি আগে যেখানে সম্ভব সম্ভব ঠিক আগে লুপ নিয়ন্ত্রণ শুরু করে কিছু বাইট ছাঁটাই করতে পারেন ?
মনিকা

1

Clojure, 185 বাইট

#(loop[[n p][(vec(range 2 1e3))0]i %](if(= i 0)p(recur(if-let[q(first(for[i(range 2(n p)):when(=(mod(n p)i)0)]i))][(assoc n p(/(n p)q)(dec p)(+(n(dec p))q))(dec p)][n(inc p)])(dec i))))

অনেক, একটি "রাষ্ট্র" সম্পাদনা ক্লোজুরে আদর্শ নয়। বৃহত্তর ইনপুটগুলির জন্য আপনাকে এক্সপোনেন্ট বাড়াতে হবে।


আপনি কেন প্যাটার্ন মিলটি ব্যবহার করেছেন loop? এটি ছাড়া আপনার কয়েকটি বাইট হারাতে সক্ষম হওয়া উচিত।
ক্লিষ্টিক

এছাড়াও, আপনি firstজিনিসটি কোনও someবিবৃতিতে পরিবর্তন করতে সক্ষম হতে পারেন ।
ক্লিস্টিক

প্যাটার্ন মেলানো ছাড়াই আমাকে recurদু'বার পুনরাবৃত্তি করতে হয়েছিল, প্রতিটি if-letশাখার জন্য একটি । এছাড়াও (dec i)সদৃশ হবে। someএকটি শিকারী প্রয়োজন, +আমরা সংখ্যার সাথে কাজ করার সময় আমি এটি ব্যবহার করতে পারি তবে এটি একটি চরিত্রের চেয়ে দীর্ঘ first। সিএমআইআইডব্লিউ
নিকোনিয়ার

1

জাভা 8, 138 135 বাইট

n->{int a[]=new int[++n],s=0,p=0,j=0;for(;j<n;a[j++]=j+1);for(;++s<n;p++)for(j=1;++j<a[p];)if(a[p]%j<1){a[p--]/=j;a[p--]+=j;}return p;}

ব্যাখ্যা:

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

n->{                     // Method with integer as both parameter and return-type
  int a[]=new int[++n],  //  Integer-array with a length of `n+1`
      s=0,               //  Steps-counter (starting at 0)
      p=0,               //  Current position (starting at 0)
      j=0;               //  Index integer (starting at 0)
  for(;j<n;              //  Loop (1) from 0 to the input (inclusive due to `++n` above)
    a[j++]=j+1           //   And fill the array with 2 through `n+2`
  );                     //  End of loop (1)
  for(;++s<n;            //  Loop (2) `n` amount of steps:
      p++)               //    And after every iteration: increase position `p` by 1
    for(j=1;             //   Reset `j` to 1
        ++j<a[p];)       //   Inner loop (3) from 2 to `a[p]` (the current item)
      if(a[p]%j<1){      //    If the current item is divisible by `j`:
        a[p--]/=j;       //     Divide the current item by `j`
        a[p--]+=j;}      //     And increase the previous item by `j`
                         //     And set position `p` two steps back (with both `p--`)
                         //   End of inner loop (3) (implicit / single-line body)
                         //  End of loop (2) (implicit / single-line body)
  return p;              //  Return the resulting position `p`
}                        // End of method

1

Clojure, 198 193 191 বাইট

এটি গুরুতরভাবে গল্ফ করা প্রয়োজন ...

#(loop[i(vec(range 2(+ % 9)))c 0 p 0](if(= % c)p(let[d(dec p)u(i p)f(some(fn[n](if(=(mod u n)0)n))(range 2(inc u)))e(= u f)](recur(if e i(assoc i d(+(i d)f)p(/ u f)))(inc c)(if e(inc p)d)))))

গল্ফ 1 : পরিবর্তন করে 5 বাইট সংরক্ষণ করা (first(filter ...))হয়েছে(some ...)

গল্ফ 2 : পরিবর্তন করে 2 বাইট সংরক্ষণ করা (zero? ...)হয়েছে(= ... 0)


ব্যবহার:

(#(...) 10000) => 512

অবহেলিত কোড:

(defn prime-ant [n]
  (loop [counter 0
         pos 0
         items (vec (range 2 (+ n 9)))]
    (if (= n counter) pos
      (let [cur-item (nth items pos)
            prime-factor
            (some #(if (zero? (mod cur-item %)) %)
              (range 2 (inc cur-item)))
            equals? (= cur-item prime-factor)]
        (recur
          (inc counter)
          (if equals? (inc pos) (dec pos))
          (if equals? items
            (assoc items
              (dec pos) (+ (items (dec pos)) prime-factor)
              pos (/ cur-item prime-factor))))))))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.