N-th নিখুঁত শক্তিটি সন্ধান করুন!


16

একটি নিখুঁত শক্তি হ'ল ফর্মের একটি সংখ্যা a**b, যেখানে a>0এবং b>1

উদাহরণস্বরূপ, 125একটি নিখুঁত শক্তি কারণ এটি হিসাবে প্রকাশ করা যেতে পারে 5**3

লক্ষ্য

আপনার টাস্কটি হ'ল এমন একটি প্রোগ্রাম / ফাংশন লিখুন যা nইতিবাচক পূর্ণসংখ্যার দিক দিয়ে -th নিখুঁত শক্তি খুঁজে পায় n

চশমা

  • প্রথম নিখুঁত শক্তি হ'ল 1(যা 1**2)।
  • যে কোনও যুক্তিসঙ্গত বিন্যাসে ইনপুট / আউটপুট।
  • বিল্ট-ইনগুলি অনুমোদিত

আরো তথ্য

স্কোরিং

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

Testcases

input  output
1      1
2      4
3      8
4      9
5      16
6      25
7      27
8      32
9      36
10     49

1
এই সংখ্যাটি কী কাজ করবে? অসীম?
ভূত_স_ই_ কোডটি

একটি যুক্তিসঙ্গত পরিমাণ।
ফাঁস নুন

এমন একটি ভাষা সম্পর্কে কী যা কেবলমাত্র এক বিটের ডেটা টাইপ ব্যবহার করে?
ভুতগুলি_ইন_কোড

1
@ আগওয়া 1001 হ্যাঁ এটি একটি স্ট্যান্ডার্ড লুফোল যা আর মজার নয়।
flawr

উত্তর:


8

জেলি , 11 বাইট

µÆE;¬g/’µ#Ṫ

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

পটভূমি

প্রতিটি ধনাত্মক পূর্ণসংখ্যার কে প্রথম মি প্রাইমগুলির ক্ষমতার উত্পাদন হিসাবে স্বতন্ত্রভাবে গুণিত করা যায় , যেখানে = = পি 1 α 1 ⋯ পি এম α মি , যেখানে α এম > 0

আমরা আশা করি আপনি একটি ( খ> 1 ) পূর্ণসংখ্যা কিছু ইতিবাচক জন্য একটি যদি এবং কেবল যদি সব বহিঃপ্রকাশ একটি ভাজক হয় α

সুতরাং, একটি পূর্ণসংখ্যার কে> 1 একটি নিখুঁত শক্তি যদি এবং কেবলমাত্র জিসিডি (α 1 , ⋯, α এম ) ≠ 1 থাকে

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

µÆE;¬g/’µ#Ṫ  Main link. No arguments.

µ            Make the chain monadic, setting the left argument to 0.
        µ#   Find the first n integers k, greater or equal to 0, for which the
             preceding chain returns a truthy value.
             In the absence of CLAs, n is read implicitly from STDIN.
 ÆE          Compute the exponents of the prime factorization of k.
   ;¬        Append the logical NOT of k, i.e., 0 if k > 0 and 1 otherwise.
             This maps 1 -> [0] and [0] -> [1].
     g/      Reduce the list of exponents by GCD.
             In particular, we achieved that 1 -> 0 and 0 -> 1.
       ’     Decrement; subtract 1 from the GCD.
             This maps 1 to 0 (falsy) and all other integers to a truthy value.
          Ṫ  Tail; extract the last k.

আমি STDIN মোটেও দেখিনি। এটিকে কীভাবে ব্যবহার করব তা আমার কোনও ধারণা নেই।
লিকি নুন

প্রধান গুণনীয়করণের সাথে নিখুঁত শক্তির সংজ্ঞাটির দুর্দান্ত ব্যবহার। আপনি কি বর্ণনায় এই অ্যালগরিদম অন্তর্ভুক্ত করতে পারেন?
ফাঁস নুন

পছন্দ করেছেন
ডেনিস

আমি বুঝতে পারি না কীভাবে 21 ^ 2 এর কার্যকারিতাটিতে প্রথম বা তৃতীয় প্রধানকে অন্তর্ভুক্ত করে। আপনি কি দয়া করে আমাকে বুঝতে সাহায্য করতে পারবেন "প্রতিটি ধনাত্মক পূর্ণসংখ্যার কে প্রথম মি প্রাইমসের ক্ষমতার পণ্য হিসাবে স্বতন্ত্রভাবে গুণিত করা যেতে পারে ... কোথায় [বেদী] a_n > 0?" এটি 21 ^ 2 এর জন্য গুণনীয়ক হিসাবে আমার কাছে পি = 2 এবং পি = 5 এর প্রকাশকগুলি শূন্য।
0 12

@ גלעדברקן দুঃখিত, এটি a_m> 0 হওয়া উচিত ছিল । পূর্ববর্তী এম -1 এক্সপোশনগুলিতে শূন্য অন্তর্ভুক্ত থাকতে পারে।
ডেনিস

6

গণিত, 34 বাইট

(Union@@Array[#^#2#&,{#,#}])[[#]]&

একটি এন × n অ্যারে তৈরি করে আইজ = আই 1+ জে , এটিকে সমতল করে, এবং n তম উপাদানটি প্রদান করে।


3

সিজেম, 16 বাইট

ri_),_2f+ff#:|$=

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

এটি লেজিওনম্যামালের ম্যাথমেটিকা ​​উত্তরের অনুরূপ ধারণা ব্যবহার করে।

ri    e# Read input and convert to integer N.
_),   e# Duplicate, increment and turn into range [0 1 ... N].
_2f+  e# Duplicate and add two to each element to get [2 3 ... N+2].
ff#   e# Compute the outer product between both lists over exponentiation.
      e# This gives a bunch of perfect powers a^b for a ≥ 0, b > 1.
:|    e# Fold set union over the list, getting all unique powers generated this way.
$     e# Sort them.
=     e# Retrieve the N+1'th power (because input is 1-based, but CJam's array access
      e# is 0-based, which is why we included 0 in the list of perfect powers.

3

অক্টাভা, 57 31 30 বাইট

@(n)unique((1:n)'.^(2:n+1))(n)

আমি কেবল আবার লক্ষ্য করেছি যে অষ্টাভের প্রয়োজন নেই ndgrid(যখন মতলব করেন) =)



3

সেজ (সংস্করণ 6.4, সম্ভবত অন্যরাও): 64 63 63

lambda n:[k for k in range(1+n^2)if(0+k).is_perfect_power()][n]

একটি ল্যাম্বডা ফাংশন তৈরি করে যা তৃতীয় nনিখুঁত শক্তি দেয়। আমরা এটি প্রথম n^2পূর্ণসংখ্যার মধ্যে পাওয়া যায় যে উপর নির্ভর করে । (এর 1+n^2জন্য প্রয়োজনীয় n=1,2The 0+kবিটটি রূপান্তর int(k)করার জন্য প্রয়োজনীয় Integer(k)))

xrange-> এর জন্য বাইট অফ করুন range, ডেনিসকে ধন্যবাদ।

কেবল একটি মজাদার ঘটনা: 0সৌভাগ্যক্রমে সেজের মানদণ্ডগুলির দ্বারা একটি নিখুঁত শক্তি, কারণ তখন 1তালিকার 1 ম উপাদান, 0 তম নয় :)


সুতরাং এটি কি পাইথন মূল শক্তি অংশ ছাড়া?
ক্যালকুলেটরলাইন

@ ক্যাটস আরেফ্লাফি এবংis_perfect_power()
'

2

পাইথ - 12 11 বাইট

স্পষ্টত দৃষ্টিভঙ্গি, সবেমাত্র যায় এবং সমস্ত নম্বর পরীক্ষা করে।

e.ffsI@ZTr2

টেস্ট স্যুট



1

জুলিয়া, 64 32 বাইট

n->sort(∪([1:n]'.^[2:n+1]))[n]

এটি একটি বেনামে ফাংশন যা কোনও পূর্ণসংখ্যা গ্রহণ করে এবং পূর্ণসংখ্যা ফেরত দেয়। এটি কল করতে, এটি একটি ভেরিয়েবলের জন্য বরাদ্দ করুন।

এখানে ধারণাটি লেজিওনম্যামালের ম্যাথমেটিকা উত্তরের মতো : আমরা 1 থেকে n এর সাথে পূর্ণসংখ্যার বাহ্যিক পণ্যটি 2 থেকে n + 1 দিয়ে নিয়ে যাই , ফলস্বরূপ ম্যাট্রিক্স কলাম অনুসারে ভেঙে ফেলি , অনন্য উপাদান গ্রহণ করি, বাছাই করি এবং n তম উপাদানটি পাই ।

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


1

জাভাস্ক্রিপ্ট (ES6), 87

n=>(b=>{for(l=[i=0,1];b<n*n;++b)for(v=b;v<n*n;)l[v*=b]=v;l.some(x=>n==i++?v=x:0)})(2)|v

কম গল্ফড

f=n=>{
  for(b=2, l=[0,1]; b < n*n; ++b)
    for(v = b; v < n*n;)
      l[v*=b] = v;
  i = 0;
  l.some(x => n == i++ ? v=x : 0);
  return v;
  // shorter alternative, but too much memory used even for small inputs
  // return l.filter(x=>x) [n-1];
}

পরীক্ষা

f=n=>(b=>{for(l=[i=0,1];b<n*n;++b)for(v=b;v<n*n;)l[v*=b]=v;l.some(x=>n==i++?v=x:0)})(2)|v

function test(){
  var v=+I.value
  O.textContent=f(v)
}
  
test()
<input type=number id=I value=10><button onclick='test()'>-></button>
<span id=O></span>


1

প্রকৃতপক্ষে, 18 বাইট (প্রতিযোগী নয়)

;;u@ⁿr;`;√≈²=`M@░E

এটি অনলাইন চেষ্টা করুন! (আপডেটের প্রয়োজনের কারণে কাজ নাও করতে পারে)

এই সমাধানটি প্রতিযোগিতামূলক নয় কারণ Eএই চ্যালেঞ্জটি পোস্ট হওয়ার পরে আমি একটি বাগ ঠিক করেছি ।

ব্যাখ্যা:

;;u@ⁿr;`;√≈²=`M@░E
;;u@ⁿr              push range(n**(n+1))
      ;`;√≈²=`M@░   filter: take if
        ;√≈²=         int(sqrt(x))**2 == x
                 E  get nth element

1

> <>, 108 বাইট

:1)?v  >n;
$:@@\&31+2>2$:@@:@
:1=?\@$:@*@@1-
:~$~<.1b+1v!?(}:{:~~v?(}:{:v?=}:{
1-:&1=?v~~>~61.     >~1+b1.>&

এই প্রোগ্রামটি চালনার আগে স্ট্যাকের সাথে ইনপুট নম্বর উপস্থিত থাকা প্রয়োজন।

নষ্ট বাইটের সংখ্যা হ্রাস করতে এটি অনেকটা সময় নিয়েছে 7!

ইনপুট কিনা তা যাচাই করার পরে 1, প্রোগ্রামটি প্রতিটি সংখ্যাটি চেক করে n4 থেকে শুরু করে এটি একটি নিখুঁত শক্তি কিনা তা দেখার জন্য। এটি দিয়ে শুরু করে এটি করে a=b=2। যদি a^b == n, আমরা একটি নিখুঁত শক্তি খুঁজে পেয়েছি, সুতরাং সন্ধান করার জন্য অবশিষ্ট নিখুঁত শক্তির সংখ্যা হ্রাস - যদি আমরা ইতিমধ্যে সঠিক সংখ্যা, আউটপুট খুঁজে পেয়েছি।

যদি a^b < n, bবর্ধিত হয়। যদি a^b > n, aবর্ধিত হয়। তারপরে, যদি a == n, আমরা খুঁজে পেয়েছি যে nএটি একটি নিখুঁত শক্তি নয়, তাই বৃদ্ধি n, পুনরায় সেট করা aএবং b


0

জে, 29 বাইট

@ LegionMammal978 এর পদ্ধতির ভিত্তিতে ।

<:{[:/:~@~.[:,/[:(^/>:)~>:@i.

ব্যবহার

   f =: <:{[:/:~@~.[:,/[:(^/>:)~>:@i.
   f " 0 (1 2 3 4 5 6 7 8 9 10)
1 4 8 9 16 25 27 32 36 49

ব্যাখ্যা

<:{[:/:~@~.[:,/[:(^/>:)~>:@i.
                           i.  Create range from 0 to n-1
                        >:     Increments each in that range, now is 1 to n
               [:              Cap, Ignores input n
                    >:         New range, increment from previous range to be 2 to n+1 now
                  ^/           Forms table using exponentation between 1..n and 2..n+1
             ,/                Flattens table to a list
         ~.                    Takes only distinct items
     /:~                       Sorts the list
<:                             Decrements the input n (since list is zero-based index)
  {                            Selects value from resulting list at index n-1

0

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

n=>(a=[...Array(n)]).map(_=>a.every(_=>(p=i**++j)>n*n?0:r[p]=p,i+=j=1),r=[i=1])&&r.sort((a,b)=>a-b)[n-1]

সমস্ত শক্তিকে n not এর চেয়ে বেশি নয় বলে গণনা করে ফলাফল ফলাফলের তালিকা বাছাই করে এবং নবম উপাদান গ্রহণ করে Works


0

জাভা, 126

r->{int n,i,k;if(r==1)return r;for(n=i=2,r--;;){for(k=i*i;k<=n;k*=i)if(k==n){i=--r>0?++n:n;if(r<1)return n;}if(--i<2)i=++n;}}

পুনরাবৃত্তিটি ব্যবহার করা কি ছোট হবে?
ফাঁস নুন

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