নবম এমনকি পারফেক্ট নম্বর আউটপুট


16

চ্যালেঞ্জ

একটি পূর্ণসংখ্যা দেওয়া হয়েছে, এন, ইনপুট হিসাবে যেখানে 0 <= n <= 2^10, নবম এমনকি নিখুঁত সংখ্যা আউটপুট দেয়।

নিখুঁত সংখ্যা

একটি নিখুঁত সংখ্যা হল একটি সংখ্যা, x যেখানে এর গুণকগুলির যোগফল (নিজে বাদে) x সমান। উদাহরণস্বরূপ, 6:

6: 1, 2, 3, 6

এবং, অবশ্যই, 1 + 2 + 3 = 6তাই 6 নিখুঁত।

যদি একটি নিখুঁত সংখ্যা, x , হয় x mod 2 = 0।

উদাহরণ

নীচে প্রথম 10 টি নিখুঁত সংখ্যা রয়েছে:

6
28
496
8128
33550336
8589869056
137438691328
2305843008139952128
2658455991569831744654692615953842176
191561942608236107294793378084303638130997321548169216

নোট করুন যে আপনি এটি ইন্ডেক্স করতে পারেন তবে আপনি চান: 6 টি প্রথম বা 0 তম এমনকি নিখুঁত সংখ্যা হতে পারে।

জয়লাভ

বাইটস মধ্যে সংক্ষিপ্ত কোড।


2
@ লিক্যনুন আমার ধারণা, এটি একটি উন্মুক্ত প্রশ্ন। যদি এই প্রশ্নটি নবম বিজোড় নিখুঁত সংখ্যা আউটপুট হয় ... এটি সমাধান করার জন্য আপনার এক বিলিয়ন রিপ্রেস অনুদানের প্রয়োজন হবে। blogs.ams.org/mathgradblog/2013/07/25/odd-perfect-numbers-exist (10 ^ 300 এর নীচে কারও অস্তিত্ব নেই)
— রোহান ঝুনঝুনওয়ালা

1
সবচেয়ে ছোট বিজোড় নিখুঁত সংখ্যাটি কী?
— ফাঁস নুন

5
এমনক একটি সংখ্যার এন যথাযথ হয় যদি সেখানে কোনও মার্সেন প্রাইম পি থাকে যেমন এন = পি (পি + 1) / 2 । বিজোড় নিখুঁত সংখ্যার জন্য এমন কোনও সূত্র নেই; তদতিরিক্ত, বিজোড় নিখুঁত সংখ্যা এমনকি উপস্থিত থাকলে এটি অজানা even
— ডেনিস

2
বেশ না। এখানে কেবল 49 টি পরিচিত মার্সেন প্রাইম রয়েছে।
— ডেনিস

1
@ বেটাডেকে: এটি $ 49 than এর চেয়ে বেশি, সুতরাং th০ তম নিখুঁত সংখ্যাটি জানা যায়নি।
— রস মিলিকান

উত্তর:


7

জেলি , 7 বাইট

6Æṣ=$#Ṫ

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

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

6Æṣ=$#Ṫ  Main link. Argument: n

6        Set the return value to 6.
     #   Execute the link to the left with argument k = 6, 7, 8, ... until n
         values of k result in a truthy value. Yield the array of matches.
    $        Combine the two links to the left into a monadic chain.
 Æṣ              Compute the sum of k's proper divisors.
   =             Compare the result with k.
      Ṫ  Tail; extract the last match.

বিভাজনকারীদের সম্পর্কে এতগুলি বিল্টিন ...
— এরিক দি আউটগল্ফার

6

গণিত, 13 বাইট

অবাক হওয়ার মতো কিছু নেই, সেখানে একটি বিল্ট-ইন রয়েছে।

PerfectNumber

উদাহরণ:

In[1]:= PerfectNumber[18]                                                       

Out[1]= 33570832131986724437010877211080384841138028499879725454996241573482158\

>    45044404288204877880943769038844953577426084988557369475990617384115743842\

>    47301308070476236559422361748505091085378276585906423254824947614731965790\

>    74656099918600764404702181660294469121778737965822199901663478093006075022\

>    35922320184998563614417718592540207818507301504509772708485946474363553778\

>    15002849158802448863064617859829560720600134749556178514816801859885571366\

>    09224841817877083608951191123174885226416130683197710667392351007374503755\

>    40335253147622794359007165170269759424103195552989897121800121464177467313\

>    49444715625609571796578815564191221029354502997518133405151709561679510954\

>    53649485576150660101689160658011770193274226308280507786835049549112576654\

>    51011967045674593989019420525517538448448990932896764698816315598247156499\

>    81962616327512831278795091980742531934095804545624886643834653798850027355\

>    06153988851506645137759275553988219425439764732399824712438125054117523837\

>    43825674443705501944105100648997234160911797840456379499200487305751845574\

>    87014449512383771396204942879824895298272331406370148374088561561995154576\

>    69607964052126908149265601786094447595560440059050091763547114092255371397\

>    42580786755435211254219478481549478427620117084594927467463298521042107553\

>    17849183589266903954636497214522654057134843880439116344854323586388066453\

>    13826206591131266232422007835577345584225720310518698143376736219283021119\

>    28761789614688558486006504887631570108879621959364082631162227332803560330\

>    94756423908044994601567978553610182466961012539222545672409083153854682409\

>    31846166962495983407607141601251889544407008815874744654769507268678051757\

>    74695689121248545626112138666740771113961907153092335582317866270537439303\

>    50490226038824797423347994071302801487692985977437781930503487497407869280\

>    96033906295910199238181338557856978191860647256209708168229116156300978059\

>    19702685572687764976707268496046345276316038409383829227754491185785965832\

>    8888332628525056

আমি মনে করি এটির জন্য কোনও মানদণ্ড ফাঁক আছে?
— পাওলো ইবারম্যান

1
@ পাওলোএবারম্যান সঠিক, 19 টি ডাউনভোটস এবং এটির 94 টি আপভোটের অনুমোদনের সাথে একটি মন্তব্য: কোডগলফ.মেটা.স্ট্যাকেকেক্সচেঞ্জ
— টিম

4

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

`@Z\s@E=vtsG<}n

খুব ধীর. এন- তম নিখুঁত সংখ্যা না পাওয়া পর্যন্ত এটি একের পর এক সংখ্যা বাড়িয়ে দেওয়ার চেষ্টা করে চলেছে ।

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

ব্যাখ্যা

`        % Do...while
  @      %   Push iteration index, k (starting at 1)
  Z\     %   Array of divisors
  s      %   Sum
  @E     %   Push k. Multiply by 2
  =      %   Equal? If so, k is a perfect number
  v      %   Concatenate vertically. This gradually builds an array which at the k-th
         %   iteration contains k zero/one values, where ones indicate perfect numbers
  ts     %   Duplicate. Sum of array
  G<     %   Push input. Less than? This is the loop condition: if true, proceed with
         %   next iteration
}        % Finally (execute right before exiting loop)
  n      %   Number of elements of the array
         % End (implicit). Display (implicit)



2

পাইথন 2 , 198 153 83 78 77 75 74 বাইট

i=input()
j=0
while i:j+=1;i-=sum(x*(j%x<1)for x in range(1,j))==j
print j

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

এখন এটি স্রেডকোডের মতো পড়ে।

  • সংরক্ষিত 45 অগণিত বাইট কারণ @Leaky নূনের আমাকে সমষ্টি ফাংশন এবং তালিকা ধী সম্পর্কে শিক্ষা দিয়েছিলেন।

  • অনিয়সারি বন্ধনীগুলি সরানোর জন্য @ শুকির পরামর্শের জন্য 2 বাইট সংরক্ষণ করা হয়েছে।

আমরা নির্ভুল সংখ্যাগুলি না পাওয়া পর্যন্ত আমরা প্রতিটি সমান সংখ্যার মধ্য দিয়ে পুনরাবৃত্তি করি।


লক্ষ্য করুন যে আপনার gআসলে ন্যায়বিচার sum।
— লিকি নুন

অজগর লাইব্রেরি না জানার জন্য @ ল্যাকইনুন আমাকে সঠিকভাবে কাজ করে। আমার কাছে কেবল জাভা এবং সিলোস এর চেয়ে আরও বেশি কিছু শিখতে হবে।
— রোহান ঝুনঝুনওয়ালা




2

পিএইচপি, 111 বাইট

0-ইন্ডেক্সিং

এই ধারণাটি নিয়ে কাজ করে যে একটি নিখুঁত সংখ্যা এমন একটি সংখ্যা যেখানে n=x*y x=2^iএবং y=2^(i+1)-1এবং y অবশ্যই প্রাইম হওয়া উচিত

for(;!$r[$argn];$u?:$r[]=$z)for($z=2**++$n*($y=2**($n+1)-1),$u=0,$j=1;$j++<sqrt($y);)$y%$j?:$u++;echo$r[$argn];

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




1

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

(!!)(filter(\x->x==sum[n|n<-[1..x-1],x`mod`n==0]||x==1)[1..])

যেহেতু সূচকটি 0 এ শুরু হতে পারে, আপনার দরকার নেই ||x==1। !!অপারেটর বিভাগ তৈরি করতে বন্ধ করার প্রথম বন্ধনীর ঠিক আগে সরিয়ে নিয়ে এবং filterঅন্য তালিকার বোধগম্যতার সাথে প্রতিস্থাপন করে আপনি বাইটগুলিও সংরক্ষণ করতে পারেন ।
— ফৌবি



0

Clojure, 79 বাইট

#(nth(for[i(range):when(=(apply +(for[j(range 1 i):when(=(mod i j)0)]j))i)]i)%)

অনুমান অনুসরণ করে, এর :whenঅবস্থার জন্য ভারী ব্যবহার ।

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