সবচেয়ে কম নম্বর দিন যাতে এন বিভাজক রয়েছে


17

আপনার ফাংশনটি একটি প্রাকৃতিক সংখ্যা নেয় এবং ক্ষুদ্রতম প্রাকৃতিক সংখ্যাটি দেয় যার মধ্যে ঠিক নিজেই সহ বিভাজকের পরিমাণ থাকে।

উদাহরণ:

f(1) =  1 [1]
f(2) =  2 [1, 2]
f(3) =  4 [1, 2, 4]
f(4) =  6 [1, 2, 3, 6]
f(5) = 16 [1, 2, 4, 8, 16]
f(6) = 12 [1, 2, 3, 4, 6, 12]
 ...

ফাংশনটি বিভাজনকারীদের তালিকা ফিরিয়ে দিতে হবে না, তারা কেবল উদাহরণের জন্য এখানে রয়েছে।


2
এই কোড-গল্ফ বা কোড-চ্যালেঞ্জ?
মেরিনাস

ওফফ, সেই ট্যাগটি ভুলে গেছি, কোড-গল্ফ!
স্টিটিডরোজ

উত্তর:


6

এপিএল, 25 24 23 টি অক্ষর

f←{({+/⍵=⍵∧⍳⍵}¨⍳2*⍵)⍳⍵}

একটি ফাংশন সংজ্ঞায়িত করে fযা এর পরে সংখ্যা গণনা করতে ব্যবহার করা যেতে পারে:

> f 13
4096

> f 14
192

সমাধানটি LCM (n, x) == n iff x বিভক্ত করে এটিকে ব্যবহার করে । সুতরাং, ব্লকটি {+/⍵=⍵∧⍳⍵}সহজেই বিভাজকের সংখ্যা গণনা করে। এই ফাংশনটি 1 থেকে 2 ^ d পর্যন্ত সমস্ত সংখ্যায় প্রয়োগ করা হয় ¨⍳2*⍵। এরপরে ফলাফলের তালিকাটি d এর জন্য অনুসন্ধান করা হয় নিজেই হয় ( ⍳⍵) যা পছন্দসই ফাংশন f (d)


অভিনন্দন! 23 অক্ষর ... বাহ!
স্টিভড্রোজ

19:{⍵⍳⍨(+/⊢=⊢∧⍳)¨⍳2*⍵}
অ্যাডম

আমি আপনাকে সংজ্ঞায়িত করা প্রয়োজন বলে মনে করি না f
জাকারি

5

গল্ফস্ক্রিপ্ট, ২৯ 28 টি অক্ষর

{.{\.,{)1$\%},,-=}+2@?,?}:f;

সম্পাদনা: আমরা এই ধারণার জন্য পিটার টেলরকে ধন্যবাদ <2 ^ n এ সন্ধান সীমাবদ্ধ রাখলে একটি একক চর সংরক্ষণ করা যায় ।

পূর্ববর্তী সংস্করণ:

{.{\)..,{)1$\%},,-@=!}+do}:f;

গল্ফস্ক্রিপ্টে একটি প্রচেষ্টা, অনলাইনে চালানো

উদাহরণ:

13 f p  # => 4096
14 f p  # => 192
15 f p  # => 144

কোডটিতে মূলত তিনটি ব্লক রয়েছে যা নিম্নলিখিত লাইনে বিশদভাবে ব্যাখ্যা করা হয়েছে।

# Calculate numbers of divisors
#         .,{)1$\%},,-    
# Input stack: n
# After application: D(n)

.,          # push array [0 .. n-1] to stack
{           # filter array by function
  )         #   take array element and increase by one
  1$\%      #   test division of n ($1) by this value
},          # -> List of numbers x where n is NOT divisible by x+1
,           # count these numbers. Stack now is n xd(n)
-           # subtracting from n yields the result



# Test if number of divisors D(n) is equal to d
#         {\D=}+   , for D see above
# Input stack: n d
# After application: D(n)==d

{
  \         # swap stack -> d n
  D         # calculate D(n) -> d D(n)
  =         # compare
}+          # consumes d from stack and prepends it to code block         



# Search for the first number which D(n) is equal to d
#         .T2@?,?    , for T see above
# Input stack: d
# After application: f(d)

.           # duplicate -> d d
T           # push code block (!) for T(n,d) -> d T(n,d)
2@?         # swap and calculate 2^d -> T(n,d) 2^d
,           # make array -> T(n,d) [0 .. 2^d-1]
?           # search first element in array where T(n,d) is true -> f(d)

ইনপুট জন্য একটি অসীম লুপ যেতে মনে হয় 1
পিটার টেলর

আমার সেরা সমাধানটি এখন পর্যন্ত আপনার কাছ থেকে যথেষ্ট পরিমাণে orrowণ নিয়েছে, আমার মনে হয় যে এটি পৃথক উত্তরের পরিবর্তে মন্তব্য করার উপযুক্ত বলে মনে করি।
পিটার টেলর 16

4

পাইথন: 64

বাকুরিয়ের সমাধানটি সংশোধন করা এবং গ্রিসির পরামর্শ এবং প্ল্যানাপাসের আর সমাধানের কৌশলটি অন্তর্ভুক্ত করে আমরা পেয়েছি:

f=lambda n,k=1:n-sum(k%i<1for i in range(1,k+1))and f(n,k+1)or k

4

পাইথন: 66

f=lambda n,k=1:n==sum(k%i<1for i in range(1,k+1))and k or f(n,k+1)

উপরের RuntimeError: maximum recursion depth exceededসিপিথনে ছোট ইনপুটগুলি দিয়ে একটি বাড়িয়ে তুলবে , এবং এমনকি বিশাল সংখ্যার সীমা নির্ধারণ করে এটি সম্ভবত কিছু সমস্যা দেবে। অজগর বাস্তবায়নে যে লেজ পুনরাবৃত্তিকে অনুকূল করে তোলে এটি ঠিকঠাক কাজ করা উচিত।

আরও ভার্বোজ সংস্করণ, যার এমন সীমাবদ্ধতা থাকা উচিত নয়, তা হল নিম্নলিখিত 79৯ বাইট সমাধান:

def f(n,k=1):
    while 1:
        if sum(k%i<1for i in range(1,k+1))==n:return k
        k+=1

আমি 11, 13, 17, 19 এবং অন্যান্যগুলিতে পুনরাবৃত্তি সীমাটি আঘাত করছি।
স্টিভেন রাম্বালস্কি

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

আপনি এর if elseসাথে and orএবং এর ==1সাথে প্রতিস্থাপন ব্যবহার করে কিছু অক্ষর সংরক্ষণ করতে পারেন <1:f=lambda n,k=1:n==sum(k%i<1for i in range(1,k+1))and k or f(n,k+1)
grc

যেহেতু আমি 66 খুব খারাপ দেখতে পেয়েছি, আপনি যদি ব্যবহার করেন তবে 2 টি অক্ষর সংরক্ষণ করতে পারেনsum(k%-~i<1for i in range(k))
ভোলিটিলিটি

f=lambda n,k=1:n==sum(k%-~i<1for i in range(k))or-~f(n,k+1)7 বাইট সংরক্ষণ
ডেনিস

4

গণিত 38 36

(For[i=1,DivisorSum[++i,1&]!=#,];i)&

ব্যবহার:

(For[i=1,DivisorSum[++i,1&]!=#,];i)&@200

ফলাফল:

498960

সম্পাদন করা

কিছু ব্যাখ্যা:

ডিভাইডারসাম [এন, ফর্ম] n ভাগ করে নেওয়ার জন্য I [i] ফর্মের যোগফল উপস্থাপন করে।

যেহেতু form[i]আমি ফাংশনটি ব্যবহার করছি 1 &, এটি সর্বদা ফিরে আসে 1, তাই কার্যকরভাবে বিভাজকের যোগফলকে সংক্ষিপ্তভাবে গণনা করে।


কোনও কোড-গল্ফ ট্যাগ ছিল না তাই আমি দীর্ঘ উত্তর দিলাম! ওহো
ডেভিডসি

@ ডেভিডক্যারাহার আমি কেবল অনুমান করেছি :)
ডঃ বেলিসারিয়াস

আমি ভেবেছিলাম আমি জানি কী DivisorSumফিরে আসে (বিভাজনকারীদের যোগফল) তবে উত্থাপিত প্রশ্নের উত্তর দেওয়ার ক্ষেত্রে এটি কীভাবে কার্যকর হয় তা আমি দেখতে পাই না। আপনি কীভাবে এটি ব্যাখ্যা করবেন? বিটিডাব্লু, আমার মনে হয় আপনার n = 200 এর জন্য টাইমিং ডেটা অন্তর্ভুক্ত করা উচিত; ফাংশনটি লক্ষণীয়ভাবে দ্রুত, সমস্ত নম্বর যাচাই করতে হয়েছিল তা দিয়ে।
ডেভিডসি

@ ডেভিডকারারহির সম্পাদনা দেখুন। পুনরায় সময়: আমার মেশিনটি খুব আস্তে আস্তে :(
ডাঃ বেলিসেরিয়াস

ম্যাচমেটিকায় ফ্যাক্টরিংটি আরও কম হওয়ার জন্য আরও পরিশীলিত পদ্ধতির জন্য যথেষ্ট বিল্ট-ইন নেই? যদি ঘটনাটি হয় তবে আমি হতাশ।
পিটার টেলর

3

জে, 33 অক্ষর

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

   f=.>:@]^:([~:[:*/[:>:_&q:@])^:_&1

   f 19
262144

3

হাসেলেল 54

দ্রুত এবং নোংরা (তাই পাঠযোগ্য এবং অ-কৌশলযুক্ত) সমাধান:

f k=head[x|x<-[k..],length[y|y<-[1..x],mod x y==0]==k]

সম্পাদনা উত্তরটি আরও ছোট করে নি, তবে এটি সম্ভবত আরও বেশি হ্যাসেল-জাতীয়। এছাড়াও আমি সর্বদা আমার কোডের দৈর্ঘ্যে ট্রেলিং নিউলাইনটি অন্তর্ভুক্ত করেছি, এটি কি ভুল?
shiona

আমি ভেবেছিলাম আপনি ভুল হিসাব করেছেন; সম্পাদনার মূল উদ্দেশ্য ছিল গণনা আপডেট করা। কোডের পরিবর্তন নিজেই ছিল সামান্য। আমি মনে করি যে এখানে অন্যান্য এন্ট্রিগুলি জেল (33 অক্ষর) এর জন্য প্রবেশের মতো, অনুচ্ছেদযুক্ত নতুন লাইনটিও গণনা করে না।
নেস

2

কে, 42

অপর্যাপ্ত পুনরাবৃত্তির সমাধান যা স্ট্যাকটিকে খুব সহজেই উড়িয়ে দেয়

{{$[x=+/a=_a:y%!1+y;y;.z.s[x;1+y]]}[x;0]} 

k){{$[x=+/a=_a:y%!1+y;y;.z.s[x;1+y]]}[x;0]}14
192
k){{$[x=+/a=_a:y%!1+y;y;.z.s[x;1+y]]}[x;0]}13
'stack


2

এপিএল (25)

{⍵{⍺=+/0=⍵|⍨⍳⍵:⍵⋄⍺∇⍵+1}1}

প্রবঞ্চক! প্রতিধ্বনি -n '{⍵ {⍺ = + / 0 = ⍵ | ⍨⍳⍵: ⍵⋄⍺∇⍵ + 1} 1}' | wc -c আমাকে 47 দেয়! তবে সত্যই, আপনি কি আমাকে দয়া করে এপিএলের কয়েকটি সহজ টিউটোরিয়ালটির লিঙ্ক দিতে পারেন? আমি এটি গুগল করার চেষ্টা করেছি এবং কয়েকটি নিবন্ধ পড়েছি, তবে শেষ পর্যন্ত আমি সর্বদা "তারা এগুলি করছে কেন :(?" জিজ্ঞাসা করতে চাই। এটির কোনও আসল সুবিধা রয়েছে
XzKto

এটি ডায়ালগ এপিএলের জন্য, যা আমি ব্যবহার করি, আপনি একই সাইটে উইন্ডোজ সংস্করণটি বিনামূল্যে ডাউনলোড করতে পারেন। ডায়ালগ.com
মেরিনাস

বাহ, দেখে মনে হচ্ছে আমি এটিকে সত্যিই বুঝতে পারি। লিঙ্ক করার জন্য আপনাকে ধন্যবাদ! একমাত্র ক্ষতিটি হ'ল তাদের কিছু অদ্ভুত লাইসেন্সিং নীতি আছে তবে সম্ভবত আমার কেবল আমার ইংরেজি উন্নতি করতে হবে)
XzKto

2

আর - 47 টি অক্ষর

f=function(N){n=1;while(N-sum(!n%%1:n))n=n+1;n}

!n%%1:nবুলিয়ানগুলির একটি ভেক্টর দেয়: সত্য যখন 1 থেকে n এর পূর্ণসংখ্যা n এবং FALSE এর বিভাজক হয় তা না হলে সত্য। sum(!n%%1:n)ভুল হলে বুলিয়ানগুলি 0 এবং যদি সত্য হয় এবং 1 এর যোগফল দেয়, যাতে করেN-sum(...) 0 হয় যখন বিভাজকের সংখ্যা এন হয় 0 হয় তারপরে মিথ্যা হিসাবে ব্যাখ্যা করা হয় whileযার দ্বারা বন্ধ হয়ে যায়।

ব্যবহার:

f(6)
[1] 12
f(13)
[1] 4096

2

জাভাস্ক্রিপ্ট 70

function f(N){for(j=i=m=1;m-N||j-i;j>i?i+=m=j=1:m+=!(i%++j));return i}

সত্যিই কেবল 46 টি অর্থবহ অক্ষর রয়েছে:

for(j=i=m=1;m-N||j-i;j>i?i+=m=j=1:m+=!(i%++j))

আমার সম্ভবত ছোট সংশ্লেষ সহ একটি ভাষা শেখা উচিত :)


N=>eval("for(j=i=m=1;m-N||j-i;j>i?i+=m=j=1:m+=!(i%++j));i")
TuxCraftting

2

হাস্কেল: 49 টি অক্ষর

এটি পূর্ববর্তী হাস্কেল সমাধানের উন্নতি হিসাবে দেখা যেতে পারে তবে এটি নিজস্বভাবে ধারণা করা হয়েছিল (সতর্কতা: এটি খুব ধীর)

f n=until(\i->n==sum[1|j<-[1..i],rem i j<1])(+1)1

এটি বেশ আকর্ষণীয় ফাংশন, উদাহরণস্বরূপ নোট করুন যে f (p) = 2 ^ (p-1), যেখানে পি একটি মৌলিক সংখ্যা।


দক্ষ, ছোট বিরোধিতা পথ নিরূপণ করা এটা ফ্যাক্টর হবে nমৌলিক মধ্যে (পুনরাবৃত্তি সঙ্গে) সাজানোর নিম্নক্রম, প্রতিটি এক হ্রাস, মৌলিক সংখ্যার অসীম অনুক্রম সঙ্গে zip, এবং তারপর গুণফল ভাঁজp^(factor-1)
পিটার টেলর

2
নিবন্ধন করুন N = 16 = 2 * 2 * 2 * 2 এর সমাধান 2 ^ 3 * 3 ^ 1 * 5 ^ 1 = 120, 2 ^ 1 * 3 ^ 1 * 5 ^ 1 * 7 ^ 1 = 210 নয়।
এলোমেলো

2

সি: 66 64 টি অক্ষর

একটি প্রায় সংক্ষিপ্ত সমাধান:

i;f(n){while(n-g(++i));return i;}g(j){return j?!(i%j)+g(j-1):0;}

এবং আমার পূর্ববর্তী সমাধান যা পুনরাবৃত্তি করে না:

i;j;k;f(n){while(k-n&&++i)for(k=0,j=1;j<=i;k+=!(i%j++));return i;}

আরও সংক্ষিপ্ত সমাধান অবশ্যই বিদ্যমান।


2

হাস্কেল (120 সি), একটি খুব দক্ষ পদ্ধতি

1<>p=[]
x<>p|mod x p>0=x<>(p+1)|1<2=(div x p<>p)++[p]
f k=product[p^(c-1)|(p,c)<-zip[r|r<-[2..k],2>length(r<>2)](k<>2)]

পরীক্ষার কোড:

main=do putStrLn$show$ f (100000::Integer)

এই পদ্ধতিটি খুব দ্রুত। ধারণাটি প্রথমে প্রাথমিক কারণগুলি খুঁজে বের করে k=p1*p2*...*pm, যেখানে পি 1 <= পি 2 <= ... <= অপরাহ্ন। তারপরে উত্তরটি হ'ল n = 2^(pm-1) * 3^(p(m-1)-1) * 5^(p(m-2)-1) ...

উদাহরণস্বরূপ, কে = 18 কে গুণিত করে, আমরা 18 = 2 * 3 * 3 পাই get প্রথম 3 টি প্রাইমস 2, 3, 5 So সুতরাং উত্তর n = 2 ^ (3-1) * 3 ^ (3-1) * 5 ^ (2-1) = 4 * 9 * 5 = 180

আপনি এটির অধীনে এটি পরীক্ষা করতে পারেন ghci:

*Main> f 18
180
*Main> f 10000000
1740652905587144828469399739530000
*Main> f 1000000000
1302303070391975081724526582139502123033432810000
*Main> f 100000000000
25958180173643524088357042948368704203923121762667635047013610000
*Main> f 10000000000000
6558313786906640112489895663139340360110815128467528032775795115280724604138270000
*Main> f 1000000000000000
7348810968806203597063900192838925279090695601493714327649576583670128003853133061160889908724790000
*Main> f 100000000000000000
71188706857499485011467278407770542735616855123676504522039680180114830719677927305683781590828722891087523475746870000
*Main> f 10000000000000000000
2798178979166951451842528148175504903754628434958803670791683781551387366333345375422961774196997331643554372758635346791935929536819490000
*Main> f 10000000000000000000000
6628041919424064609742258499702994184911680129293140595567200404379028498804621325505764043845346230598649786731543414049417584746693323667614171464476224652223383190000

এটি গল্ফের দরিদ্র স্কোর নয়, তবে আপনি যে পথটি নিয়েছেন তা +1!
স্টিটিডরোজ

8 = 2 * 2 * 2 এর জন্য এই অ্যালগরিদম 2 * 3 * 5 = 30 নম্বর দিন। তবে সেরা সমাধানটি হল 2 ^ 3 * 3 = 24 (8 = 2 * 4 এর জন্য)
এএমকে

সমাধানটি ভুল যদি নির্দিষ্ট সংখ্যক বিভাজকগুলিতে ক্ষুদ্র প্রধানের একটি উচ্চ ক্ষমতা থাকে। সুতরাং 10 টির ক্ষমতার জন্য সম্ভবত তালিকাভুক্ত সমাধানগুলি ভুল।
এএমকে

@ এ্যামকে হ্যাঁ, আপনি ঠিক বলেছেন যে ইশারা জন্য ধন্যবাদ।
রায়

2

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

fl

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

এর আউটপুট ভেরিয়েবলের মাধ্যমে ইনপুট নেয় এবং তার ইনপুট ভেরিয়েবলের মাধ্যমে আউটপুট দেয়।

f     The list of factors of
      the input variable
 l    has length equal to
      the output variable.

এই সঠিক একই শিকারী, তার ইনপুট ভেরিয়েবলের মাধ্যমে ইনপুট গ্রহণ করে এবং তার আউটপুট ভেরিয়েবলের মাধ্যমে আউটপুট আউট করার পরিবর্তে এই চ্যালেঞ্জটি সমাধান করে


ভাষাটি প্রশ্নের চেয়েও সাম্প্রতিক বলে দুর্দান্ত, তবে সেই ধাঁধার জন্য উপযুক্ত নয়।
স্টিটিড্রোজ

আমি যখন এখানে নতুন ছিলাম তখন আমাকে প্রথমে বলা হয়েছিল যে প্রশ্নগুলির তুলনায় নতুন ভাষাগুলি আর চাঁদাবাজি
সম্পর্কিত নয় স্ট্রিং

ওহ, ভাল কিছু না। স্পষ্টতই, বিবর্তনের জন্য নিয়ম তৈরি করা হয় এবং আমাদের অবশ্যই মনে রাখতে হবে যে এই সাইটের মূল উদ্দেশ্যটি আমাদের নিজের উন্নতি করা এবং মজা করা। উত্তর গৃহীত!
স্টিভড্রোজ

1

সি, 69 অক্ষর

সবচেয়ে কম নয়, তবে প্রথম সি উত্তর:

f(n,s){return--s?f(n,s)+!(n%s):1;}
x;
g(d){return++x,f(x,x)-d&&g(d),x;}

f(n,s)nপরিসরে বিভাজক গণনা করে 1..s। সুতরাং f(n,n)বিভাজক গণনা n
g(d)loops (পুনরাবৃত্তি দ্বারা) অবধি f(x,x)==d, তারপরে এক্স প্রদান করবে।


1

গণিত 38 36

(For[k=1,DivisorSigma[0, k]!= #,k++]; k)&

ব্যবহার

   (For[k = 1, DivisorSigma[0, k] != #, k++]; k) &[7]

(* 64 *)

প্রথম প্রবেশ ( code-golfট্যাগটিতে প্রশ্নের আগে যোগ করার আগে ))

একটি সরল সমস্যা, প্রদত্ত প্রদত্ত (সহ ) এবং Divisors[n]এর বিভাজকগুলি প্রদান করেnnLength[Divisors[n]] এই জাতীয় বিভাজনকারীদের সংখ্যা প্রদান করে * **

smallestNumber[nDivisors_] :=
   Module[{k = 1},
   While[Length[Divisors[k]] != nDivisors, k++];k]

উদাহরণ

Table[{i, nDivisors[i]}, {i, 1, 20}] // Grid

গণিত গ্রাফিক্স


ডেভিড, Length@Divisors@nতার চেয়ে খাটো এবং দ্রুত DivisorSigma[0,n]
মিঃ উইজার্ড

ধন্যবাদ। আমি যে ব্যবহার সম্পর্কে জানতাম না DivisorSigma
ডেভিডসি


1

জেলি , 6 বাইট (প্রতিদ্বন্দ্বী)

2*RÆdi

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

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

2*RÆdi  Main link. Argument: n (integer)

2*      Compute 2**n.
  R     Range; yield [1, ..., 2**n]. Note that 2**(n-1) has n divisors, so this
        range contains the number we are searching for.
   Æd   Divisor count; compute the number of divisors of each integer in the range.
     i  Index; return the first (1-based) index of n.

আপনি কেন করবেন 2*? এটি কি এর পরে প্রতিটি সংখ্যার চেয়ে n এর চেয়ে বেশি বিভাজক রয়েছে?
এরিক আউটগল্ফার

2
না; উদাহরণস্বরূপ, সমস্ত প্রাইমের ঠিক দুটি বিভাজন রয়েছে। তবে আমরা এন বিভাজকের সাথে ক্ষুদ্রতম ধনাত্মক পূর্ণসংখ্যার সন্ধান করছি । যেহেতু এই ব্যাপ্তির অন্তর্ভুক্ত তাই সবচেয়ে ছোটটি এটিও করে। 2**(n-1)
ডেনিস

0

সি ++, 87 টি অক্ষর

int a(int d){int k=0,r,i;for(;r!=d;k++)for(i=2,r=1;i<=k;i++)if(!(k%i))r++;return k-1;}

0

পাইথন 2, 95 টি অক্ষর, পুনরাবৃত্তিযোগ্য

অন্যান্য অজগর সমাধানগুলির তুলনায় কিছুটা ভারবস কিন্তু এটি পুনরুক্ত নয় তাই এটি সিপিথনের পুনরাবৃত্তির সীমাটিকে আঘাত করে না:

from itertools import*
f=lambda n:next(i for i in count()if sum(1>i%(j+1)for j in range(i))==n)

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