একের পর এক এক্সপেনটারকে গণনা করুন


11

আপনার টাস্কটি ধাপে ধাপে নিম্নলিখিত পদক্ষেপগুলি সহ গণনা করা হচ্ছে:

দুটি ইনপুট দেওয়া (এই উদাহরণস্বরূপ, 4 এবং 8), আপনাকে বিট বিহীন সমীকরণ গণনা করে এক্সপেনসিয়েশনটি গণনা করতে হবে। আপনারা চাইবেন 4^8একটি বৃহত্তর বেস মান (4) এবং একটি ছোট ব্যয়কারী (8)। আপনি আরও ক্ষয় এবং বিভাজন ব্যবহার করে এটি করতে পারেন। আপনি এক্সটিকে ভ্যালুটি এক্স এর মান দিয়ে বিভক্ত করতে পারেন (প্রদত্ত এক্সটি এক্সপোনেন্টের একটি প্রাথমিক বিভাজক) এবং বেস মানকে ( বি ) তৈরি করতে পারেন B^X। উদাহরণস্বরূপ, আপনি এটি করতে পারেন:

4^8 = (4 ^ 2)^(8 / 2) = 16^4

পূর্বের সমীকরণে আমি এক্সকে 2 দিয়ে প্রতিস্থাপন করেছি ।

আপনি 16^4আরও 'সরলীকরণ' করতে পারেন , এর সাথে আবার X = 2:

16^4 = (16 ^ 2)^(4 / 2) = 256^2

এবং তারপরে অবশেষে একটি সংখ্যা গণনা করুন (আবার, X = 2):

256^2 = (256 ^ 2)^(2 / 2) = 65536^1 = 65536

অতএব,

4^8 = 16^4 = 256^2 = 65536

এটি আপনার দেওয়া উচিত আউটপুট। আউটপুট বিভাজকটি কিছুটা নমনীয়, উদাহরণস্বরূপ, আপনি পরিবর্তনের পরিবর্তে নিউলাইনগুলি বা স্পেস দ্বারা সমীকরণগুলি পৃথক করতে পারেন =। অথবা, আপনি এগুলিকে একটি তালিকায় রাখতে পারেন (তবে আপনাকে অবশ্যই কোনও অঙ্ক বা ^পৃথককারী হিসাবে চরিত্রটি ব্যবহার করবেন না )।

মার্টিন ইন্ডার যেমন উল্লেখ করেছেন, ^এটিও নমনীয়। উদাহরণস্বরূপ, আপনি আউটপুট [A, B]বা A**Bতার পরিবর্তে ব্যবহার করতে পারেন A^B

এক্স কেবলমাত্র প্রধান হতে পারে যার অর্থ আপনি X = 8সরাসরি সমাধানের জন্য ব্যবহার করতে পারবেন না এবং এক্স এর মানগুলি কেবলমাত্র দ্বিতীয় ইনপুট (এক্সপোশনার) এর প্রধান উপাদান হবে।

উদাহরণ:

(input) -> (output)
4^8 -> 4^8=16^4=256^2=65536
5^11 -> 5^11=48828125
2^15 -> 2^15=32^3=32768 (2^15=8^5=32768 is also a valid output)

মাইন্ড (যেমন আপনি নিতে যে ইনপুট বিন্যাস এছাড়াও নমনীয় হতে পারে A \n Bবা A Bএর পরিবর্তে A^B। একথাও ঠিক যে, আপনি যদি একটি ফাংশন দুটি আর্গুমেন্ট গ্রহণ লিখতে এই একটা সমস্যা হবে না।

দ্বিতীয় উদাহরণে, আমরা সরাসরি গণনায় চলে যাই, যেহেতু 11প্রধান এবং আমরা আরও কোনও পদক্ষেপ নিতে পারি না।

এটি সমাধানের জন্য আপনি কোনও প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন এবং আপনি যথাক্রমে মানটি মুদ্রণ করতে বা ফিরে আসতে পারেন।

এটি , সেই সংক্ষিপ্ততম কোডটি জয়ী!


@ জোনাথান অ্যালান আমিও সেদিকে তাকাচ্ছিলাম। 32^3এবং 8^15হয় 512 হয় না।
Yytsi


@ ওকএক্স শেষটি কি মুদ্রিত হতে পারে x^1?
রড

@ রড না, এটি পারে না। যে নির্বোধ হবে।
Okx

উত্তর:


2

জেলি , 16 বাইট

*Uż:Ṫ
ÆfṪ1;×\ç@€

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

ইনপুট একক তালিকা [base, exponent]। নীচের মোনাডিক লিঙ্কটির রিটার্ন মান হল তালিকার একটি তালিকা, একটি সম্পূর্ণ প্রোগ্রাম হিসাবে সেই তালিকার একটি প্রতিনিধিত্ব মুদ্রিত হয়, উদাহরণস্বরূপ 2^15=8^5=32768^1মুদ্রিত হয়:

[[2, 15], [8, 5], [32768, 1]]

কিভাবে?

ÆfṪ1;×\ç@€ - Main link: [base, exponent]            e.g.     [4,12]
Æf         - prime factorization array (vectorises)      [[2,2],[2,2,3]]
  Ṫ        - tail (tailing first costs bytes)                   [2,2,3]
   1;      - 1 concatenated with the result                   [1,2,2,3]
     ×\    - reduce with multiplication  (make factors)       [1,2,4,12]
       ç@€ - call last link (1) as a dyad for €ach with reversed @rguments
           - implicit print if running as a full program

*Uż:Ṫ - Link 1, an entry in the equality: [base, exponent], factor  e.g. [4, 12], 4
*     - exponentiate (vectorises) : [base ^ factor, exponent ^ factor]   [256, 20736]
 U    - upend                                                            [20736, 256]
   :  - integer division: [base // factor, exponent // factor]           [1, 3]
  ż   - zip                                                        [[20736, 1], [256, 3]]
    Ṫ - tail                                                                    [256, 3]
                                               ...i.e at a factor of 4: 4 ^ 12 = 256 ^ 3

এটি একটি ট্রেলিং দ্বারা 2 বাইটের গ্রিড হিসাবে ফর্ম্যাট করা যেতে পারে µG, যেমন:

    2    15
    8     5
32768     1

... বা পুরো জন্য ফর্ম্যাট করা সহ ^1, ট্রিলিং সহ 9 এর জন্য j€”^j”=ṖṖ, যেমন:

2^15=8^5=32768

5

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

f=(a,b,c=2)=>b>1?b%c?f(a,b,c+1):a+['^'+b,f(a**c,b/c)]:a

( ) এর ,জায়গায় ব্যবহার করে ।=2^15,8^5,32768

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

দ্রষ্টব্য: স্নিপেট ক্রস ব্রাউজারের সামঞ্জস্যের Math.powপরিবর্তে ব্যবহার করে **


ফায়ারফক্স 54 নাইট বিল্ড ES7 100% সমর্থন করে! : ও কাঙ্গাক্সস.স.থুব.ইও
কমপ্যাট-

3

05 এ বি 1 ই , 23 22 17 বাইট

নমনীয় আউটপুট ফর্ম্যাটটি দেখে 5 বাইট সংরক্ষণ করা হয়েছে।

Ò©gƒ²®N¹‚£P`Šm‚Rˆ

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

ব্যাখ্যা

উদাহরণস্বরূপ 2^15

Ò©                 # calculate primefactors of exponent and store in register
                   # STACK: [3,5]
  g                # length
                   # STACK: 2
   ƒ               # for N in range[0 ... len(primefactors)] do
    ²              # push base
                   # STACK: 2
     ®             # push primefactors
                   # STACK: 2, [3,5]
      N¹‚£         # split into 2 parts where the first is N items long
                   # 1st, 2nd, 3rd iteration: [[], [3, 5]] / [[3], [5]] / [[3, 5], []]
          P        # reduce each by product
                   # STACK 1st iteration: 2, [1,15]
           `       # split list to items on stack
                   # STACK 1st iteration: 2, 1, 15
            Š      # move down the current exponent
                   # STACK 1st iteration: 15, 2, 1
             m     # raise base to the rest of the full exponent
                   # STACK 1st iteration: 15, 2
              ‚    # pair them up
                   # STACK 1st iteration: [15,2]
               R   # reverse the pair
                   # STACK 1st iteration: [2,15]
                ˆ  # store it in global list
                   # print global list at the end of execution


1

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

a#b|v:_<-[x|x<-[2..b],mod b x<1]=[a,b]:(a^v)#div b v|1<2=[[a^b]]

ব্যবহারের উদাহরণ: 2 # 32-> [[2,32],[4,16],[16,8],[256,4],[65536,2],[4294967296]]এটি অনলাইন চেষ্টা করুন!

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

a#b                       -- take input numbers a and b
   |                      -- if
      [x|x<-[2..b]   ]    --  the list of all x drawn from [2..b]
              ,mod b x<1  --  where x divides b
    v:_<-                 --  has at least one element (bind the first to v)
       = [a,b]:           --  the the result is the [a,b] followed by
          (a^v)#div b v   --  a recursive call with parameters (a^v) and (div b v)
   |1<2                   -- else (i.e. no divisors of b)
       = [[a^b]]          --  the result is the singleton list of a singleton list
                          --    of a^b

0

বাশ + জিএনইউ ইউটিলিটিস, 82

echo $1^$2
f=`factor $2|egrep -o "\S+$"`
((m=$2/f,r=$1**f,m-1))&&$0 $r $m||echo $r

পুনরাবৃত্ত শেল স্ক্রিপ্ট। এটি টিআইওতে কাজ করবে বলে মনে হয় না, তবে স্ক্রিপ্ট হিসাবে সংরক্ষণ এবং সম্পাদন করার সময় এটি দুর্দান্ত হয় runs

$ ./expbit2.sh 4 8
4^8
16^4
256^2
65536
$ ./expbit2.sh 5 11
5^11
48828125
$ ./expbit2.sh 2 15
2^15
32^3
32768
$ 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.