আমার ক্ষতিকারক সম্ভাবনা কি?


14

আমরা ধনাত্মক পূর্ণসংখ্যার এম এর এন- প্রফেনশিয়াল সম্ভাবনাটিকে এম এন এর উপসর্গগুলির গণনা হিসাবে সংজ্ঞায়িত করব যা নিখুঁত এন- পাওয়ার রয়েছে।

একটি পূর্ণসংখ্যার উপসর্গগুলি হ'ল অঙ্কের সমস্ত সংক্ষিপ্ত উপসর্গ যা প্রথমটি দিয়ে শুরু হয়, বেস 10 তে সংখ্যা হিসাবে ব্যাখ্যা করা হয় example উদাহরণস্বরূপ, 2744 এর উপসর্গগুলি 2 , 27 , 274 এবং 2744 ।

একটি উপসর্গ পি একটি নিখুঁত এন-পাওয়ার হয় যদি কে- এন = পি এর মতো পূর্ণসংখ্যার কে থাকে । উদাহরণস্বরূপ, 81 হ'ল একটি নিখুঁত 4-শক্তি কারণ 3 4 = 81 ।


দুটি কঠোর ইতিবাচক পূর্ণসংখ্যার এম এবং এন দেওয়া হয়েছে , উপরের সংজ্ঞা অনুযায়ী এম এর এন -সম্ভাব্য সম্ভাবনা গণনা করুন ।

উদাহরণস্বরূপ, 2 এর -exponential সম্ভাব্য 13 হয় 3 কারণ 13 2 হয় 169 এবং 1 , 16 এবং 169 সব নিখুঁত স্কোয়ার আছে।

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

স্বাভাবিকভাবেই, আউটপুটগুলি প্রায় সর্বদা ছোট হবে কারণ শক্তিগুলি ... ভাল ... তাত্পর্যপূর্ণভাবে ক্রমবর্ধমান ক্রিয়াকলাপ এবং একাধিক নিখুঁত-শক্তি উপসর্গ থাকা বিরল।

M, N     -> Output

8499, 2  -> 1
4,    10 -> 2
5,    9  -> 2
6,    9  -> 2
13,   2  -> 3

হ্যালো, আউটপুটটি কীভাবে (4, 10) 2 এবং 1 নয়? কারণ 4 পাওয়ার 10 1048576, 1 একটি নিখুঁত শক্তি তবে 10 নয়
— আলী আইএসএসএ

@AliISSA হাই, জন্য আউটপুট 4, 10হয় 2 কারণ, 1 একটি নিখুঁত 10 শক্তি এবং 1048576 একটি নিখুঁত 10 শক্তি (যখন 10 , 104 , 1048 , 10485 এবং 104857 নয়)। সুতরাং, এখানে 2 টি বৈধ উপসর্গ আছে, সুতরাং আউটপুট 2
— মিঃ এক্সকোডার

উত্তর:



6

জেলি , 10 বাইট

*DḌƤÆE%Ḅċ0

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

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

*DḌƤÆE%Ḅċ0  Main link. Left argument: m. Right argument: n.

*           Compute m**n.
 D          Generate its decimal digits.
  ḌƤ        Convert prefixes back to integers.
    ÆE      Get the exponents of each prefix's prime factorization.
      %     Take all exponents modulo n.
            For a perfect n-th power, all moduli will be 0.
       Ḅ    Convert from binary to integer, mapping (only) arrays of 0's to 0.
        ċ0  Count the zeroes.

3

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

0%n=0
x%n=sum[1|t<-[1..x],t^n==x]+div x 10%n
m#n=(m^n)%n

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

পুনরাবৃত্তি করে পাটিগণিতভাবে উপসর্গগুলি বের করে \x->div x 10। আমি সর্বশেষ লাইনটি বিন্দু মুক্ত প্রকাশ করার চেষ্টা করেছি তবে একটি সংক্ষিপ্ত প্রকাশ খুঁজে পাইনি।





1

জাভা (ওপেনজেডিকে 9) , 105 বাইট

m->n->{int c=1,k=m;for(;--k>0;)if((""+(int)Math.pow(m,n)).matches((int)Math.pow(k,n)+".*"))c++;return c;}

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

ক্রেডিট


1
.startsWith(""+(int)Math.pow(k,n)).matches((int)Math.pow(k,n)+".*")-1 বাইট জন্য হতে পারে ।
— কেভিন ক্রুইজসেন

1

পার্ল 6 , 40 বাইট

{1+(^$^m X**$^n).grep({$m**$n~~/^$^p/})}

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


আপনি যদি কোনও &fooভেরিয়েবলের জন্য কলযোগ্য বরাদ্দ করেন তবে আপনি এটিকে কল করতে পারেন যেমন আপনি সাবরুটাইন foo( 'bar' )বা foo 'bar'অন্তর্ভুক্ত করার প্রয়োজন নেই &। আমার অর্থ আপনি এটি লেখেন নি &say(&f(|$_))( say
— কোনওভাবেই

@ ব্র্যাডগিলবার্টবিগিলস আমি কেবল কোড গল্ফের জন্য পার্ল 6 ব্যবহার করি এবং এখনও আরও অনেক কিছু শিখতে হবে, তাই টিপটির জন্য ধন্যবাদ।
— নয়েলহোহফ

0

জেলি , 14 বাইট

*DḌƤ*İ}ær⁵%1¬S

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

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

*DḌƤ*İ}ær⁵%1¬S - Main link. Arguments: n, m (integers)  e.g. 13, 2
*              - Power. Raise x to the power y               169
 D             - Convert to a list of digits                 [1 6 9]
   Ƥ           - Convert each Ƥrefix
  Ḍ            - Back to an integer                          [1 16 169]
     İ         - Calculate the İnverse of
      }        - The right argument                          0.5
    *          - Raise each element to that power            [1 4 13]
       ær⁵     - Round each to 10 ** -10                     [1 4 13]
               - to remove precision errors
          %1   - Take the decimal part of each               [0 0 0]
            ¬  - Logical NOT each                            [1 1 1]
             S - Sum                                         3




0

কোটলিন , 89 বাইট

m,n->1+(1..m-1).count{"${Math.pow(m+0.0,n)}".startsWith("${Math.pow(it+0.0,n).toInt()}")}

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

পরীক্ষার ক্ষেত্রে এনগুলিতে ডাবল ভ্যালু (2.0, 10.0, 9.0) হিসাবে পাস হয়েছে যাতে ম্যাথ.পো () কল করার সময় আমাকে দ্বিগুণ রূপান্তর করতে হবে না।


0

পাইথন 2 , 83 71 70 বাইট

n,m=input();s=n**m;k=0
while s:k+=round(s**(1./m))**m==s;s/=10
print k

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

Ovs থেকে 1 এর জন্য থেক্স।


@ ওভস: ডিওহ! ইদানীং খুব বেশি জাভাস্ক্রিপ্ট কোড করা হচ্ছে ... ভাবছিলাম আমার math.round()লোল দরকার হবে
— চ্যাস ব্রাউন

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