বেফুঞ্জ -98 (পাইফুঞ্জ), 120 বাইট
cf*10p'<20p11>00p1+:30p:::*+39**6+:30g39**c-00g*10gv
>:2*1-*00g*a*^
^:p02*g02p01*a*-*g02\+g01*g00-2*5g03,+*86:/*5g02+*5<
এটি অনলাইন চেষ্টা করুন!
এটি সময়সীমার ক্ষেত্রে সীমান্তরেখা। 10,000 ডিজিটগুলি আমার ল্যাপটপে প্রায় 11 সেকেন্ড সময় নেয়, তবে আমি নিশ্চিত যে একটি "যুক্তিসঙ্গত" পিসি থাকতে হবে যা এর চেয়ে দ্রুত এটি করতে পারে।
তবে, আপনি যদি টিআইও দিয়ে চেষ্টা করে দেখেন তবে মনে রাখবেন যে second০ সেকেন্ড টাইম সীমাটি হিট না হওয়া পর্যন্ত এটি কোনও কিছুই ফিরিয়ে আনবে না, যেহেতু অ্যালগরিদম চিরতরে চলে যাওয়ার জন্য ডিজাইন করা হয়েছে। ততক্ষণে আপনার কাছে 10,000 টিরও বেশি সংখ্যা থাকবে।
আমি জেরেমি গিবন স্পিগট অ্যালগরিদম ব্যবহার করছি, যা আমি এখানে অন্যান্য উত্তরগুলির মতোই বলে মনে করি। যাইহোক, নোট এই ব্যাখ্যাকারী নির্বিচারে স্পষ্টতা মেমরির কোষ থাকার উপর নির্ভর করে যে, এবং শুধুমাত্র বাস্তবায়ন আমি যে সমর্থন যে সচেতন আছি PyFunge ।
ব্যাখ্যা
cf*10p Initialise r to 180.
'<20p Initialise t to 60.
11 Initialise i and q on the stack to 1.
> Start of the main loop.
00p Save the current value of q in memory.
1+:30p Increment i and save a copy in memory.
:::*+39**6+ Calculate u = 27*(i*i+i)+6.
: Make a duplicate, since we'll need two copies later.
30g39**c-00g*10gv Calculate y = (q*(27*i-12)+5*r)/(5*t).
/*5g02+*5<
,+*86: Convert y to a character so we can output it.
*a*-*g02\+g01*g00-2*5g03 Calculate r = 10*u*(q*(i*5-2)+r-y*t)
p01 Save the updated r.
*g02 Calculate t = t*u
p02 Save the updated t.
>:2*1-*00g*a* Calculate q = 10*q*i*(i*2-1).
^:
^ Return to the start of the main loop.