N এর যোগফলের সবচেয়ে বড় সংখ্যা নির্ণয় করুন


18

কাজটি

একটি ইনপুট ধনাত্মক পূর্ণসংখ্যা দেওয়া n(আপনার ভাষায় এর সীমা 1 থেকে, inclusively), রিটার্ন বা আউটপুট স্বতন্ত্র ধনাত্মক পূর্ণসংখ্যা যে সমষ্টি সর্বোচ্চ সংখ্যক n

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

fকার্য অনুসারে একটি বৈধ ফাংশন সংজ্ঞায়িত করা যাক :

জন্য ক্রম f1 থেকে শুরু:

1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, ...

বৃহত্তর পরীক্ষার কেস হিসাবে:

>>> f(1000000000) // Might not be feasible with brute-forcers
44720

পরীক্ষার কোড

কোনও পরীক্ষার ক্ষেত্রে সুস্পষ্টভাবে প্রদত্ত নয়, আপনার কোডের আউটপুট নিম্নলিখিত ফলাফলের সাথে মেলে:

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        System.out.println((int) Math.floor(Math.sqrt(2*x + 1./4) - 1./2));
    }
}

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


এটি কি 0 সূচকযুক্ত হতে পারে?
সম্পূর্ণমানবিক

1
@totallyhuman "এটি" উত্তর হচ্ছে? কারণ এটি কোনও তালিকার নয় ...
অ্যাডিসন ক্রম্প

3
এটি নির্দিষ্ট সংখ্যার পৃথক পার্টিশন সম্পর্কে।
অ্যাডিসন ক্রম্প 0


4
কোডগলফের স্ট্যাকের মধ্যে আমি যখনই হোঁচট খায় তখন আমি নিজেকে তুচ্ছ মনে করি। উত্তর এবং মন্তব্যগুলি হুঁশিয়ার চেয়ে অনেক বেশি than প্রশ্নগুলি সাধারণত আকর্ষণীয় হয় তবে @ জেপ্পস্টিগনিয়েলসন তার মন্তব্যে যখন আমরা এখনও মেঝেটির ক্ষেত্রটি নিয়ে চিন্তাভাবনা করছি তখন সম্পূর্ণ ব্লুপ্রিন্টগুলিতে কেবল ছুঁড়ে মারে।
কল্লে এমপি

উত্তর:


9

05 এ বি 1 ই , 4 বাইট

ÅTg<

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

কাজের জন্য উপযুক্ত সরঞ্জাম।

ÅTতালিকা উৎপাদ একটি করব T riangular সংখ্যার পর্যন্ত সহ এন (দুর্ভাগ্যবশত 0 খুব অন্তর্ভুক্ত, অন্যথায় এটি 3 বাইট প্রয়োগযোগ্য হবে), g<পায় লেন ম এবং এটি decrements।


8

জেলি , 6 5 বাইট

R+\»ċ

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

কিছুটা দক্ষ এই ক্রমটি ত্রিভুজাকার সংখ্যায় বৃদ্ধি পায়, সুতরাং এটি কেবল গণনা করে যে কতগুলি ত্রিভুজাকার সংখ্যা এন এর চেয়ে ছোট ।

ব্যাখ্যা:

        # Main link
R       # Range, generate [1..n]
 +\     # Cumulative sum (returns the first n triangular numbers)
   »    # For each element, return the maximum of that element and 'n'
    ċ   # How many elements are 'n'? (implicit right argument is n)

ব্যাখ্যায়, আপনি অবশ্যই বোঝাতে চেয়েছেন " এন এর চেয়ে কতগুলি সংখ্যা ছোট বা সমান "
লুইস মেন্ডো

@ লুইস মেন্ডো নতুন ব্যাখ্যা দেখুন।
DJMcMayhem

6

হাস্কেল , 26 বাইট

-2 বাইট H.PWiz ধন্যবাদ।

(!!)$do x<-[0..];x<$[0..x]

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

এই আয় n তম পুরো নম্বর যেখানে প্রতিটি উপাদান আমি প্রতিলিপি করা হয় আমি +1 বার।


3
আমি সাহায্য করতে পারি না তবে জিজ্ঞাসা করতে পারি "সুসক" কি
অ্যাডিসন

হ্যাঁ, আমি জানি succজন্য দাঁড়িয়েছে successor
পুরোপুরি



3

ব্রেন-ফ্লাক , 82 বাইট

"পঠনযোগ্যতা" এর জন্য হোয়াইটস্পেস যুক্ত করা হয়েছে

(())

{
    {}

    ((({})[[]]))

    ([({}<(())>)](<>)){({}())<>}{}{((<{}>))<>{}}{}<>{}

}{}{}{}

([]<>)

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



1
কে ভেবেছিল যে দুটি অপঠনযোগ্য ভাষা, হোয়াইটস্পেস এবং ব্রেন-ফ্ল্যাকের সমন্বয়কে "পাঠযোগ্য" হিসাবে বিবেচনা করা যেতে পারে!
এয়ারড কোইনরিঙ্গিংহিং

3

জেলি , 7 বাইট

×8‘½’:2

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

জেলি , 9 বাইট

Ḥ+4ݤ½_.Ḟ

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

এটি ডেনিস এবং ডিজে-র চেয়ে দীর্ঘ , তবে এবার উদ্দেশ্য অনুসারে । খুব, খুব দক্ষ


1
LOL

@totallyhuman ব্যবহারের M
ব্যবহারকারী 202729

3

আর , 28 বাইট

function(n)rep(1:n,1:n+1)[n]

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

1পুনরাবৃত্তি 2বার, 2পুনরাবৃত্তি 3বার, ..., nবারবার n+1বার ভেক্টর তৈরি এবং nthউপাদান গ্রহণ করে । এটি মেমরির ত্রুটিটি কারণ 1:nখুব বড় কারণ বা n*(n+1)/2 - 1উপাদানগুলির সাথে পুনরাবৃত্তি তালিকা খুব বড়।

আর , 29 বাইট

function(n)((8*n+1)^.5-1)%/%2

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

আলেফালফের উত্তরের সূত্রটি ব্যবহার করে সরাসরি মানটি গণনা করে । এটি সম্ভবত সংখ্যাগত নির্ভুলতা বাদে কোনও সমস্যা ছাড়াই চলবে।

আর , 30 বাইট

function(n)sum(cumsum(1:n)<=n)

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

এর চেয়ে কম বা সমান ত্রিভুজাকার সংখ্যা গণনা করে n। এটি 1:nযথেষ্ট পরিমাণে বড় হলে সম্ভবত মেমরির ত্রুটি ঘটবে - উদাহরণস্বরূপ, 1e9এটি ছুড়ে দেয় Error: cannot allocate vector of size 3.7 Gb




2

এটা কি সবসময় সঠিক? আমি নিশ্চিত না floor((sqrt(8x+4)-1)/2)(আপনার সূত্র) এবং floor((sqrt(8x+1)-1)/2)(সঠিক সূত্র) প্রত্যেকের জন্য একই ফলাফল দেয় x
ইটিএইচ প্রডাকশনগুলি

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

হুম। আমি কীভাবে সরাসরি এটি প্রমান করব তা সম্পর্কে নিশ্চিত নই, তবে আমি এমন একটি জন্তু-লেখক লিখেছি যা ১০০ কোটিরও অধিক কোনও ব্যর্থতা খুঁজে পায় না।
ইটিএইচ প্রোডাকশনস

2

জাপট , 8 বাইট

সূত্র সমাধান বন্ধ।

*8Ä ¬É z

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


ব্যাখ্যা

8 দিয়ে গুণ করুন, 1 ( Ä) যোগ করুন , বর্গমূল ( ¬), 1 ( É) কে বিয়োগ করুন এবং মেঝে ফলাফলকে 2 ( z) দ্বারা ভাগ করুন ।


বিকল্প, 8 বাইট

ডিজেএমসিএমহেমের জেলি সলিউশন বন্দর ।

õ å+ è§U

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

õ1 থেকে ইনপুট পর্যন্ত পূর্ণসংখ্যার অ্যারে তৈরি করুন (যোগ করুন å) দ্বারা ( +) যোগ করুন ( ) এবং ইনপুট ( ) এর èচেয়ে কম বা সমান উপাদানগুলি গণনা করুন ( ) equal§U



2

ব্রেন-ফ্লাক , 70 56 48 বাইট

{([(({}[({}())()])[()])]<>){<>({}())}{}<>{}}<>{}

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

ব্যাখ্যা

এর মূল অংশটি হ'ল নিম্নলিখিত স্নিপেট যা আমি লিখেছি:

([(({})[()])]<>){<>({}())}{}<>{}

টিওএস ইতিবাচক হলে এটি কিছুই করবে না এবং অন্যথায় স্ট্যাকগুলি স্যুইচ করবে। এটি সুপার স্ট্যাক অশুচি তবে এটি কাজ করে। এখন প্রোগ্রামটির মূল অংশটি ইনপুট থেকে ক্রমবর্ধমান সংখ্যক বিয়োগ করে ইনপুটটি ইতিবাচক না হওয়া পর্যন্ত। আমরা প্রতিটি সময় ইনপুট থেকে সংযোজকের চেয়ে আরও 1 টি বিয়োগ করে সংক্ষিপ্তকারক শুরু করি।

({}[({}())()])

আমরা এটি উপরের স্নিপেটের ভিতরে রাখতে পারি

([(({}[({}())()])[()])]<>){<>({}())}{}<>{}

এটি একটি লুপে রাখা হয়েছে যাতে আমরা স্ট্যাকগুলি স্যুইচ না করা পর্যন্ত এটি কার্যকর করে। লুপটি শেষ হয়ে গেলে আমরা স্ট্যাকগুলি স্যুইচ করে এবং জাঙ্কটি সরিয়ে সংরক্ষণকারকটিকে পুনরুদ্ধার করি।



2

পাইথ , 7 বাইট

lh{I#./

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

পূর্ণসংখ্যার পার্টিশনগুলিকে ফিল্টার রাখুন যা Iনকলের চেয়ে বেশি উত্তম, ইডটি ধরুন hএবং এটি প্রাপ্ত করুনl ইডটি ধরুন আকর্ষন পান।

বৈধতা প্রমাণ

খুব কঠোর বা ভাল কথার নয়।

যাক একজন = একটি 1 + একটি 2 ... + একটি এন এবং বি = খ 1 + খ 2 ... + খ মি একই পূর্ণসংখ্যা দুটি ভিন্ন ধরনের পার্টিশন হতে এন । আমরা ধরে নিই করবে একটি হল দীর্ঘতম অনন্য পার্টিশন। আমরা deduplicate পর বি , যে, তাদের মধ্যে মাত্র একজন সঙ্গে একই পূর্ণসংখ্যা একাধিক ঘটনার প্রতিস্থাপন, আমরা জানি যে এর সমষ্টি বি কম এন । তবে আমরা এও জানি যে ফাংশন ফলাফলটি বৃদ্ধি পাচ্ছে (কঠোরভাবে নয়), তাই আমরা অনুমান করতে পারি যে দীর্ঘতম অনন্য পার্টিশন এ A সর্বদা অন্যান্য পার্টিশনের অনন্য আইটেমের গণনা হিসাবে কমপক্ষে একই পরিমাণে উপাদান থাকে।


2

ত্রিভুজ্যতা , 49 বাইট

....)....
...2)2...
..)1/)8..
.)1/)IE/.
@^)1_+/i.

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

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

ত্রিভুজায়নের জন্য বিন্দুগুলির ত্রিভুজাকার বিতরণ করার কোড দরকার। অর্থাৎ, প্রতিটি সারির দৈর্ঘ্য অবশ্যই 2 দ্বারা গুণিত এবং কম হওয়া সারিগুলির সংখ্যার সমান হতে হবে এবং প্রতিটি সারিতে অবশ্যই (প্রতিটি পাশের) প্রোগ্রামে এর অবস্থানের সমান সংখ্যক বিন্দু থাকতে হবে (নীচের সারিটি 0 টি সারি, এটির উপরে একটির সারি 1 এবং আরও এগিয়ে)। কেবলমাত্র কয়েকটি কমান্ড রয়েছে এবং 'উইকি / কমান্ডস' পৃষ্ঠায় তালিকাবদ্ধ ব্যতীত অন্য যে কোনও চরিত্রকে কোনও অপ-বিকল্প হিসাবে বিবেচনা করা হবে (বহিরাগত বিন্দু যতক্ষণ না সামগ্রিক আকার পর্যন্ত প্রোগ্রামকে কোনওভাবে প্রভাবিত করে না প্রোগ্রামটি আয়তক্ষেত্রাকার থাকে)।

নোট করুন যে দ্বি-যুক্তির কমান্ডের জন্য, আমি পুরো ব্যাখ্যার সময় a এবং b ব্যবহার করেছি । বিষয়টি মাথায় রেখে, আসুন প্যাডিংয়ের জন্য তৈরি সমস্ত বহিরাগত অক্ষরগুলি সরিয়ে দেওয়ার পরে আসল প্রোগ্রামটি কী করে তা দেখুন:

)2)2)1/)8)1/)IE/@^)1_+/i | Input from STDIN and output to STDOUT.

)                        | Push a 0 onto the stack. Must precede integer literals.
 2                       | Push ToS * 10 + 2 (the literal 2, basically).
  )2                     | Again, push a 2 onto the stack. This can be replaced by D
                         | (duplicate), but then the padding would discard the saving.
    )1                   | Literal 1.
      /                  | Division. Push b / a (1 / 2).
       )8)1              | The literal 8 and the literal 1 (lots of these!).
           /             | Division. Push b / a (1 / 8).
            )IE          | Get the 0th input from STDIN and evaluate it.
               /         | Divide it by 1 / 8 (multiply by 8, but there isn't any
                         | operand for multiplication, and I'm not willing to add one).
                @        | Add 1 to the result.
                 ^       | Exponentiation. Here, it serves as a square too.
                  )1_+   | Decrement (add literal -1).
                      /  | Divide (by 2).
                       i | Cast to an integer.

একটি বিকল্প সমাধান, এবং প্যাডিং প্রয়োজনীয় না হলে সংক্ষিপ্ত:

....)....
...2)1...
../DD)I..
.E/)4)1/.
+^s_+i...

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


2

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

[math]::Sqrt(2*$args[0]+.25)-.5-replace'\..*'

গণিতের কল আহত এবং পিএসের ব্যাঙ্কারের গোলাকারটি আসল শয়তান (অতএব একটি বাইট সংরক্ষণের জন্য ছিনিয়ে নেওয়ার জন্য রেইগেক্স প্রয়োজন) তবে এটি বেশ ঠিক বলে মনে হচ্ছে।


2

জাভা (জেডিকে) , 28 বাইট

n->~-(int)Math.sqrt(8*n+1)/2

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

কারণ উদাহরণটি সত্যই ভাল ছিল না: পি

ক্রেডিট


1
28 বাইট " কারণ আপনার কোডটি সত্যই ভাল গল্ফ ছিল না "; পি
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন ভাল, এখন তা! : o
অলিভিয়ার গ্রাগোয়ার

1

জেলি , 7 বাইট

ŒPfŒṗṪL

মোটামুটি ও (2 এন ) সময়ে চলে।

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

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

ŒPfŒṗṪL  Main link. Argument: n

ŒP       Powerset; yield all subarrays of [1, ..., n], sorted by length.
   Œṗ    Yield all integer partitions of n.
  f      Filter; keep subarrays that are partitions.
     Ṫ   Tail; extract the last result.
      L  Compute its length.

1

জাভাস্ক্রিপ্ট (ES7), 22 19 বাইট

n=>(8*n+1)**.5-1>>1

-৩ বাইট ইটিএইচ প্রডাকশনগুলিকে ধন্যবাদ জানায়।


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

o.innerText=(f=
n=>(8*n+1)**.5-1>>1
)(i.value=1000000000);oninput=_=>o.innerText=f(+i.value)
<input id=i type=number><pre id=o>


ব্যাখ্যা

ইনপুটটি 8 দ্বারা গুণিত করুন এবং 1 যুক্ত করুন, এটি .5 এর শক্তিতে বাড়ান, আমাদের বর্গমূল প্রদান করুন, 1 কে বিয়োগ করুন এবং ফলাফলটি 1 দ্বারা বিট শিফট করুন।


আপনি একটি ব্যাখ্যা অন্তর্ভুক্ত করতে পারেন? আমি কিছুক্ষণের মধ্যে জাভাস্ক্রিপ্টটি করিনি
ফ্যান্টা

কিভাবে n=>(8*n+1)**.5-1>>13 বাইট সংরক্ষণ করতে হবে? (পরীক্ষা করা হয়নি)
ETH প্রোডাকশনগুলি

আমি এটিকে জেএসে আউটগল্ফ করেছি: কোডগলফ.স্ট্যাকেক্সেঞ্জিং.com
a

@ ইথ প্রডাকশনগুলি - দেখে মনে হচ্ছে এটি কার্যকর হয়।
শেগি

@tfbninja, আমি মোটামুটি স্ব-ব্যাখ্যামূলক তবে ভাবনাটি যুক্ত করব।
শেগি

1

পাইথন 2/3, 32 বাইট

বন্ধ ফর্ম সূত্রটি পাইথন বাস্তবায়ন

lambda n:int((sqrt(1+8*n)-1)//2)

পূর্ণসংখ্যা বিভাগটি //2শূন্যের দিকে ঘুরছে, সুতরাং কোনও floor( )প্রয়োজন নেই


1
পিপিসিজিতে আপনাকে স্বাগতম! এটি কি from math import sqrtকাজ করা দরকার ? যদি তা হয় তবে তা বাইটকাউন্টে অন্তর্ভুক্ত করা উচিত। ( lambda n:int((math.sqrt(1+8*n)-1)//2) import math
সেক্ষেত্রে


হ্যাঁ, এটি কাজ করার জন্য আমদানি প্রয়োজন, যাতে এটি বাইট গণনায় অন্তর্ভুক্ত করা উচিত।
mbomb007

1

হাস্কেল , 28 বাইট

কিন্ডা বিরক্তিকর, তবে এটি অন্যান্য হাস্কেল সমাধানের তুলনায় বেশ সংক্ষিপ্ত এবং সত্যিই চমৎকার পয়েন্টফ্রি এক্সপ্রেশন রয়েছে। দুর্ভাগ্যক্রমে আমি টাইপ সিস্টেমটি না পেয়ে এটি আরও ছোট করতে পারিনি:

g x=floor$sqrt(2*x+0.25)-0.5

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

পয়েন্টফ্রি, 33 বাইট

ceiling.(-0.5+).sqrt.(0.25+).(2*)

বিকল্পভাবে, 33 বাইট

পয়েন্টফ্রি সংস্করণ হিসাবে একই দৈর্ঘ্য, তবে আরও আকর্ষণীয়।

g n=sum[1|x<-scanl1(+)[1..n],n>x]


@ টোটালিহুমান: খুব ভাল, এখন আপনার খুব ভাল লাগছে :)
3

1

মিল্কিওয়ে , 12 বাইট

'8*1+g1-2/v!

ব্যাখ্যা

code         explanation       value

'            push input        n          
 8*          push 8, multiply  8n
   1+        add 1             8n+1
     g       square root       sqrt(8n+1)
      1-     subtract 1        sqrt(8n+1)-1
        2/   divide by 2       (sqrt(8n+1)-1)/2
          v  floor             floor((sqrt(8n+1)-1)/2)
           ! output

1

পাইট , 7 5 বাইট

Đř△>Ʃ

ব্যাখ্যা:

                      Implicit input
Đř△                   Gets a list of the first N triangle numbers
   >                  Is N greater than each element in the list? (returns an array of True/False)
    Ʃ                 Sums the list (autoconverts booleans to ints)



দ্রুত, তবে আরও দীর্ঘ পথ

পাইট , 11 9 বাইট

Đ2*√⌈ř△>Ʃ

ব্যাখ্যা:

Đ2*√⌈ř△           Gets a list of triangle numbers up to the ceiling(sqrt(2*N))-th
       >          Is N greater than each element of the list? (returns an array of True/False)
        Ʃ         Sums the array



বিকল্প উপায় - শেগির উত্তরের বন্দর

পাইট , 8 7 বাইট

8*⁺√⁻2÷


1

হোয়াইটস্পেস , 111 বাইট

[S S S N
_Push_0][S N
S _Duplicate_0][T   N
T   T   _Read_integer_from_STDIN][T T   T   _Retrieve_input][S S S T    S S S N
_Push_8][T  S S N
_Multiply][S S S T  N
_Push_1][T  S S S _Add][S S T   T   N
_Push_n=-1][N
S S N
_Create_Label_SQRT_LOOP][S S S T    N
_Push_1][T  S S S _Add][S N
S _Duplicate_n][S N
S _Duplicate_n][T   S S N
Multiply][S T   S S T   S N
_Copy_0-based_2nd_(the_input)][S S S T  N
_Push_1][T  S S S _Add][T   S S T   _Subtract][N
T   T   N
_If_negative_jump_to_Label_SQRT_LOOP][S S S T   S N
_Push_2][T  S S T   _Subtract][S S S T  S N
_Push_2][T  S T S _Integer_divide][T    N
S T _Print_integer]

বর্ণ S(স্থান), T(ট্যাব) এবং N(নতুন-লাইন) কেবল হাইলাইট হিসাবে যুক্ত করা হয়েছে।
[..._some_action]শুধুমাত্র ব্যাখ্যা হিসাবে যুক্ত।

এটি অনলাইনে চেষ্টা করুন (কেবলমাত্র কাঁচা জায়গা, ট্যাব এবং নতুন লাইনের সাহায্যে)।

সিউডো কোডে ব্যাখ্যা:

সূত্রটি ব্যবহার করে:

এন=8এন+ +1-12

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

Integer i = read STDIN as integer
i = i * 8 + 1
Integer n = -1
Start SQRT_LOOP:
  n = n + 1
  If(n*n < i+1):
    Go to next iteration of SQRT_LOOP
n = (n - 2) integer-divided by 2
Print n as integer to STDOUT


0

ওসিস , 14 বাইট

n8*1+1tm1%_b+0

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

কিভাবে?

n8*1+           8n + 1
     1tm        sqrt
        1%_     integer?
           b+   add f(n-1)

             0  f(0) is 0

এটি একটি পুনরাবৃত্ত সমাধান যা ইনপুট 0 এর সাথে 0 দিয়ে শুরু করে একটি ত্রিভুজাকার সূচকের মুখোমুখি হলে ফলাফলকে বাড়িয়ে তোলে।



0

রুবি , 27 বাইট

একটি দামের জন্য তিন। আমি হতাশ হয়েছি যে আমি আরও ছোট হতে পারি না।

->n{a=0;n-=a+=1while n>a;a}
->n{((8*n+1)**0.5-1).div 2}
->n{((n-~n)**0.5-0.5).to_i}

এটি অনলাইন চেষ্টা করুন! (ফাংশনটি নির্বাচন করতে, এর সামনে এফ = যুক্ত করুন)

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