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


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.