ক্ষুদ্রতম বিভাজনকারী এক্সপোঞ্জার


20

একটি পণ্ডিত সংখ্যাটি একটি পূর্ণসংখ্যা যা অন্তত একবার থেকে 0 থেকে 9 পর্যন্ত প্রতিটি অঙ্ক থাকে। 1234567890, 1902837465000000, এবং 9023289761326634265 সমস্ত প্যান্ডিজিটাল। এই চ্যালেঞ্জের উদ্দেশ্যে, 123456789 এর মতো সংখ্যা পন্ডিজিটাল নয়, যেহেতু তাদের মধ্যে 0 নেই, যদিও 123456789 = 0123456789।

একটি বিচিত্র পূর্ণসংখ্যার যুগল পূর্ণসংখ্যার একজোড়া হয় যে এই ধরনের Pandigital হয়। কে ডাইভারাইফাইং এক্সপোনেন্ট বলা হয় ।(একটি,)একটি

চ্যালেঞ্জ: পূর্ণসংখ্যা একটি প্রদত্ত , খুঁজুন ক্ষুদ্রতম সংশ্লিষ্ট বহুমুখীকরণের এক্সপোনেন্ট । এটি একটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম প্রোগ্রামটি জিতে।একটি

(আপনি ধরে নিতে পারেন যে এখানে এমন কোনও ঘাতক রয়েছে, অর্থাৎ, আপনার প্রোগ্রামকে অবৈধ ইনপুট দেওয়া হবে না, যেমন 10 এর শক্তি)

আপনার সমাধান অবশ্যই ন্যূনতম প্রদত্ত পরীক্ষার কেসগুলি হ্যান্ডেল করতে সক্ষম হবে, তবে এটি তাত্ত্বিকভাবে সমস্ত বৈধ ইনপুটগুলি পরিচালনা করতে হবে।

এটি OEIS এ A090493

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

2 -> 68
3 -> 39
4 -> 34
5 -> 19
6 -> 20
7 -> 18
8 -> 28
9 -> 24
11 -> 23
12 -> 22
13 -> 22
14 -> 21
15 -> 12
16 -> 17
17 -> 14
18 -> 21
19 -> 17
20 -> 51
21 -> 17
22 -> 18
23 -> 14
24 -> 19
25 -> 11
26 -> 18
27 -> 13
28 -> 11
29 -> 12
30 -> 39
31 -> 11
32 -> 14
33 -> 16
34 -> 14
35 -> 19
36 -> 10
1234567890 -> 1

3
আমি একটি বিশেষ ক্ষেত্রে নির্দেশ করতে চাই 1234567890 -> 1
বুদ্বুদ

@ বুবলার যুক্ত হয়েছে।
কনর ও'ব্রায়েন

নেতিবাচক এক্সটেনশনস সীমা বন্ধ?
sudo rm -rf slash

1
123456789প্যান্ডিগিটাল হিসাবে গণনা মত কিছু না ? এটি সমান 0123456789, যা অবশ্যই পণ্ডিতরূপ igit
wastl

1
@ ওয়াস্টল না, এটি হয় না।
কনার ও'ব্রায়েন

উত্তর:


9

ব্র্যাচল্যাগ (ভি 2), 9 বাইট

;.≜^dl10∧

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

এটি একটি ফাংশন জমা। টিআইও লিঙ্কটিতে একটি মোড়ক রয়েছে যা একটি সম্পূর্ণ প্রোগ্রামে একটি ফাংশন তৈরি করে।

ব্যাখ্যা

;.≜^dl10∧
 .≜        Brute-force all integers, outputting the closest to 0
;  ^         for which {the input} to the power of the number
    d        has a list of unique digits
     l10     of length 10
        ∧  (turn off an unwanted implicit constraint)



4

জাভাস্ক্রিপ্ট (নোড.জেএস) ,  51 46  43 বাইট

বিগআইন্ট আক্ষরিক হিসাবে ইনপুট নেয়। 1 এর পরিবর্তে সত্য ফিরে আসে ।

f=(n,k=n)=>new Set(n+'').size>9||1+f(n*k,k)

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


2
আমি ভুলে যাচ্ছি জেএসের এখন বিগিন্ট রয়েছে: ডি
কনর ও'ব্রায়েন

আমি সামান্য ফিরে সংক্রান্ত সন্দেহজনক 1. পরিবর্তে সত্য যে কিছু মেলে বলে মনে হচ্ছে না এ বর্ণিত am codegolf.meta.stackexchange.com/questions/9263/...
Sparr

3
@ স্পার এখানে বর্তমান sensক্যমত্য ।
আর্নৌল্ড

ধন্যবাদ। আমি উল্লেখ করে আমার লিঙ্কে একটি নতুন উত্তর রেখেছি।
স্পার



3

জে , 25 বাইট

>:@]^:(10>#@~.@":@^)^:_&1

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

একক একজাতীয় ক্রিয়া ইনপুটটি একটি বর্ধিত-যথার্থ পূর্ণসংখ্যার (উদাঃ 2x) হওয়া উচিত।

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

>:@]^:(10>#@~.@":@^)^:_&1    Monadic verb. Input: base a
    ^:              ^:_      Good old do-while loop.
                       &1    Given 1 as the starting point for b,
>:@]                         increment it each step
      (            )         and continue while the condition is true:
               ":@^          Digits of a^b
            ~.@              Unique digits
          #@                 Count of unique digits
       10>                   is less than 10

(]+10>#@=@":@^)^:_*
ফ্রাউনফ্রোগ


2

র‌্যাকেট , 110 96 বাইট

-14 বাইটস আলটিমেট হককে ধন্যবাদ!

(define(f n[b 1])(if(= 10(length(remove-duplicates(string->list(~v(expt n b))))))b(f n(+ b 1))))

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


1
পরিবর্তে ফাংশনটিতে পুনরাবৃত্তি করে এটি 96 বাইটে সংক্ষিপ্ত করা যেতে পারে(define(f n[b 1])(if(= 10(length(remove-duplicates(string->list(~v(expt n b))))))b(f n(+ b 1))))
চূড়ান্ত হক

টুইটারে আমি ডিফল্ট প্যারামিটারগুলি সম্পর্কে ভুলে গিয়েছিলাম ... (যদিও সহায়ক ফাংশন ডিফল্ট প্যারামিটার খ ব্যবহার করেছিল ...)
গ্যালেন ইভানভ

2

পাইথন 3 , 52 47 বাইট

@ বিএমওকে ধন্যবাদ

f=lambda n,i=1:len({*str(n**i)})>9or 1+f(n,i+1)

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


কেবল একটি শীর্ষস্থানীয় তবে আপনি কেবল পুরানো কোডটি সরাতে পারেন এবং "<s> 52 </s> 47" শীর্ষক লাইনে রাখতে পারেন। যদি কেউ আগ্রহী হন তবে সম্পাদনা লগটি পুরানো সংস্করণগুলি ধরে রাখবে
ভেস্কাহ

2

05 এ বি 1 ই (উত্তরাধিকার) , 10 9 বাইট

মিস্টার এক্সকোডারকে ধন্যবাদ 1 বাইট সংরক্ষিত

XµINmÙgTQ

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

ব্যাখ্যা

Xµ           # find the first positive integer N that
  INm        # when the input is raised to N
     Ù       # and duplicate digits are removed
      g      # has a length
       TQ    # equal to 10

1
লিগ্যাসি 1 বাইট সংরক্ষণ করে: 1µINmÙgTQ- এটি অনলাইনে চেষ্টা করুন!
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার: ওহ হ্যাঁ, আমাদের Nতখনকার অন্তর্নিহিত ফলাফল ছিল । ধন্যবাদ!
এমিগিনা

1

কাঠকয়লা , 19 বাইট

WΦχ¬№IXIθLυIκ⊞υωILυ

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

WΦχ¬№IXIθLυIκ⊞υω

তালিকার দৈর্ঘ্যের ইনপুটটির শক্তিটি না থাকে এমন কোনও সংখ্যা না হওয়া পর্যন্ত বারবার খালি স্ট্রিংটিকে খালি তালিকায় চাপ দিন।

ILυ

তালিকার দৈর্ঘ্য মুদ্রণ করুন।


ডাউনটা কেন?
লুইস মেন্ডো

1

কে (এনএনজি / কে) , 76 বাইট

{#{10>#?(+/|\0<|x)#x}{{+/2 99#,/|0 10\x,0}/+/99 99#,/a*\:x,0}\a::|(99#10)\x}

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

{ } যুক্তি দিয়ে ফাংশন x

|(99#10)\x আমরা 99 টি দশমিক সংখ্যার বিপরীত তালিকা হিসাবে সংখ্যাগুলি উপস্থাপন করি - এটি আর্গুমেন্টটি করুন

a::গ্লোবাল ভেরিয়েবলকে বরাদ্দ করুন a(কে-এর কোনও বন্ধ নেই we আমাদের aবৈশ্বিক হওয়া দরকার যাতে আমরা এটি সাব-ফাংশনে ব্যবহার করতে পারি)

{ }{ }\ প্রথম ফাংশনটি মিথ্যা প্রত্যাবর্তনের সময়, মধ্যবর্তী ফলাফলগুলি সংরক্ষণ করে, দ্বিতীয় ফাংশন (লুফের সময় ওরফে) প্রয়োগ করে চলুন

a*\:xপ্রতিটি aসংখ্যার প্রতিটি xঅঙ্কের ("বাহ্যিক পণ্য") দ্বারা গুণিত

99 99#a*\:x,0 0 এর অতিরিক্ত কলাম যুক্ত করুন এবং আবার 99x99 এ পুনরায় আকার দিন, এটি আই-আই সারিটি ডানদিকে আইটেমগুলিতে স্থানান্তরিত করবে, বামদিকে 0 টি সন্নিবেশ করানো হবে (এটি পরীক্ষার জন্য কাজ করে, বড় ইনপুটগুলির জন্য 99x99 ওভারফ্লো হতে পারে)

+/ সমষ্টি

{+/2 99#,/|0 10\x,0}/ বহন প্রচার:

  • { }/ একত্রিত হওয়া অবধি আবেদন চালিয়ে যান

  • 0 10\x 10 দ্বারা বিভক্ত (তালিকার একটি জুটি)

  • |0 10\x moddiv 10 দ্বারা

  • 2 99#,/|0 10\x,0 moddiv 10 দ্বারা, "ডিভ" অংশটি 1 ডিজিটকে ডানে স্থানান্তরিত করেছে

  • +/ সমষ্টি

{10>#?(+/|\0<|x)#x} - (না) পণ্ডিতের জন্য পরীক্ষা করুন:

  • |x বিপরীত x

  • 0< কোন অঙ্কগুলি শূন্য নয়

  • |\ আংশিক ম্যাক্সিমা

  • +/ যোগফল - এটি 0 টির শীর্ষস্থানীয় সংখ্যা গণনা করে x

  • 10> তারা কি 10 এর চেয়ে কম?

# ক্ষমতার ক্রম দৈর্ঘ্য - এটি ফলাফল


1

পাওয়ারশেল , 107 বাইট

param([bigint]$a)for([bigint]$b=1;-join("$([bigint]::pow($a,$b))"|% t*y|sort -u)-ne-join(0..9);$b=$b+1){}$b

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

খুব সোজা, কেবল একটি লজ্জা আমাদের [bigint]সর্বত্র ব্যবহার করা উচিত । আমরা ইনপুট নিই $a, তারপরে forইনিশিয়ালাইজারের সাথে একটি লুপ সেটআপ করি $b=1

প্রতিটি পুনরাবৃত্তির আমরা বাড়ায় $bকিনা তা পরীক্ষা করে পরে $a ^ $b(মাধ্যমে pow) পাঠানো toCharArra y, sortসঙ্গে ed -unique পতাকা, তারপর -joinএকটি স্ট্রিং মধ্যে একসঙ্গে ed হয় -nOT eপরিসরের গণদেবতা 0..9এছাড়াও -joinএকটি স্ট্রিং মধ্যে ed।

এটি একটি মুখের। উদাহরণস্বরূপ, এটি তুলনা হবে 7 ^ 5 = 16807 --> "01678"বিরুদ্ধে "0123456789"নির্ধারণ তারা সমান নয়, এবং লুপ অবিরত।

লুপটি শেষ হয়ে গেলে, আমরা নির্ধারণ করেছি যে কোনটি $bআমাদের ইনপুটটির জন্য উপযুক্ত, এবং তাই পাইপলাইনে রেখে দিন। আউটপুট অন্তর্ভুক্ত।


1

জাভা, 108 বাইট

a->{int b=0;while(new java.math.BigDecimal(a).pow(++b).toString().chars().distinct().count()<10);return b;};

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

ব্যাখ্যা

ব্রুট ফোর্স, 10 or (বা আরও বেশি দিয়ে স্ট্রিং না পাওয়া পর্যন্ত একটি op বি লুপিং করা তবে এটি অসম্ভব কারণ এটি কেবল 0 থেকে 9 এর মধ্যে থাকবে) অনন্য অক্ষর।

BigDecimalউভয়ই প্রয়োজনীয় কারণ কারণ Math.powযথাযথভাবে সঠিক নয় (ক্ষেত্রে ব্যর্থ হয় 11), এবং কারণ Doubleএকটি স্ট্রিংকে ডিফল্টরূপে রূপান্তর করা বৈজ্ঞানিক স্বরলিপি দেখায়, যা পণ্ডিত সংখ্যাটি আবিষ্কার করার এই পদ্ধতিটিকে ভঙ্গ করে।


জাভা ভার্সগুলি কি 0 এ ডিফল্টরূপে শুরু হয় না? শুরুটি বাদ দিয়ে 2 বাইট সংরক্ষণ করতে পারে।
ড্যারেল হফম্যান

@ ড্যারেলহফম্যান ইনস্ট্যান্স ভেরিয়েবলগুলি হ্যাঁ। স্থানীয়ভাবে স্কোপযুক্ত ভেরিয়েবলগুলি তা করে না।
হাইপিনো

আহ, ঠিক আছে। আমি জাভাতে কাজ করার পরে কিছু সময় হয়ে গেছে, সেই প্রযুক্তিটি ভুলে গিয়েছি।
ড্যারেল হফম্যান

আপনি পরিবর্তন করে 6 বাইট সংরক্ষণ করতে পারবেন new java.math.BigDecimal(a).pow(++b).toString()করার (new java.math.BigDecimal(a).pow(++b)+"")(এবং trailing সেমিকোলন ল্যামডা ফাংশন জন্য গণনা করা হবে না)। অনলাইনে এটি ব্যবহার করে দেখুন
কেভিন ক্রুইজসেন

1

পাইথ, 10 8 বাইট

fq;l{`^Q

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

fq;l{`^QT   Implicit: Q=eval(input())
            Trailing T inferred
f           Return (and print) the first positive integer where the following is true:
      ^QT     Raise input to the current number-th power
     `        Convert to string
    {         Deduplicate
   l          Take the length
 q            Is the above equal to...
  ;           10

পূর্ববর্তী কোড FryAmTheEggman, 2 বাইট সংরক্ষণ করা fq;l{j^QT;


বেস রূপান্তর না করে সংখ্যাকে একটি স্ট্রিংয়ে রূপান্তর করতে আপনি ব্যাকটিক ব্যবহার করতে পারেন যা আপনাকে Tপাওয়ার অপারেশনটি ছাড়তে দেয় ।
FryAmTheEggman

0

জেলি , 12 11 বাইট

1*@ṾØDfƑʋ1#

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

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

1*@ṾØDfƑʋ1#  Main link. Argument: n

1            Set the return value to 1.
         1#  Call the link to the left for k = 1, 2, ... and with right argument n,
             until it returns a truthy value.
        ʋ      Combine the four links to the left into a dyadic chain.
 *@              Compute n**k.
   Ṿ             Convert it to its string representation.
    ØD           Yield "0123456789".
      fƑ         Filter and return 1 is the result is equal to the left argument.



0

সংযুক্তি , 27 বাইট

${Generate{#Unique[x^_]>9}}

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

ব্যাখ্যা

${Generate{#Unique[x^_]>9}}
${                        }    lambda, input: x
  Generate{              }     first natural number _ satisfying...
                   x^_             the input to that number
            Unique[   ]          unique digits of ^
           #                   length of ^
                       >9      is greater than 9
                               i.e.: has 10 distinct digits

বিকল্প

28 বাইট: ${Generate{Unique@S[x^_]@9}}

29 বাইট: ${Generate{Unique[S[x^_]]@9}}

30 বাইট: ${Generate{#Unique[S[x^_]]>9}}

31 বাইট: Generate@${{#Unique[S[x^_]]>9}}

32 বাইট: ${Generate[{#Unique[S[x^_]]>9}]}

33 বাইট: ${If[#Unique[x^y]>9,y,x&$!-~y]}&0

34 বাইট: ${If[#Unique[x^y]>9,y,$[x,y+1]]}&0

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