অঙ্কের যোগফলে সমতা


23

ভূমিকা

নম্বরটি নেওয়া যাক 180। এটি একটি আকর্ষণীয় সংখ্যা কারণ এই সংখ্যার অঙ্কের যোগফল এর সমান:

1 + 8 + 0 = 9

এবং এই সংখ্যার স্কোয়ার সংস্করণ বা:

180² = 32400 > 3 + 2 + 4 + 0 + 0 = 9

এটি উভয়ই 9 । মূল সংখ্যা এবং বর্গক্ষেত্রের সংখ্যার যোগফল একই। অবশ্যই এটি OEIS এও পাওয়া যায়: A058369

কার্য

একটি অ-নেতিবাচক পূর্ণসংখ্যা দেওয়া n, আউটপুট nতম ধনাত্মক এই শর্ত সংখ্যা।

পরীক্ষার কেস ( শূন্য-সূচকযুক্ত )

Input > Output

0 > 1
1 > 9
2 > 10
3 > 18
4 > 19
5 > 45
6 > 46
7 > 55
8 > 90
9 > 99
10 > 100
11 > 145
12 > 180
13 > 189
14 > 190
15 > 198
16 > 199
17 > 289
18 > 351
19 > 361

যদি এটি আপনার আরও ভাল ফিট করে তবে ইনপুটটি 1-সূচিযুক্তও হতে পারে ।

এটি , তাই সর্বনিম্ন পরিমাণ বাইটের সাথে জমাটি জয়!


যদি কেউ এখনও এটি চিহ্নিত না করে তবে কেবল 0 বা 1 (Mod 9) এর সমান সংখ্যক তালিকায় উপস্থিত হতে পারে।
নীল

@ মামাফুনরোল উম ... না দুঃখিত। 5 এর ডিজিটাল মূল সহ সংখ্যাগুলির স্কোয়ার রয়েছে যার ডিজিটাল রুট 7
নীল

@ নীল owait এনভিএম
মামা ফান রোল

ইনপুটটি এই ক্রমের একটি শব্দ কিনা তা নির্ধারণ করার জন্য আমি একটি ব্র্যাচ্ল্যাগ প্রিকিকেট লিখেছিলাম, তবে সন্ধানী-নবম বয়লারপ্লেটটি কাজ করতে পারছি না, তাই আমি কেবল একটি মন্তব্যে রেখে দেব:^₂;?{ẹ+}ᵛ
সম্পর্কিত নয়, স্ট্রিং

উত্তর:


5

জেলি, 13 বাইট

,²DS€=/
1dz#Ṫ

ইনপুটটি 1-সূচকযুক্ত। এটি অনলাইন চেষ্টা করুন!

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

1dz#Ṫ    Main link. Argument: n (index)

1        Set the return value to 1.
   #     Execute ... until ... matches have been found.
 Ç         the helper link
  ³        n
    Ṫ    Extract the last match.


,²DS€=/  Helper link. Argument: k (integer)

,²       Pair k with k².
  D      Convert each to decimal.
   S€    Compute the sum of each list of base 10 digits.
     =/  Reduce by equality.

4

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

s=sum.map(read.pure).show
([x|x<-[1..],s x==s(x^2)]!!)

ব্যবহারের উদাহরণ: ([x|x<-[1..],s x==s(x^2)]!!) 17-> 289

s calculates the digit sum:

                    show     -- turn number into a string
     map(read.pure)          -- turn every character (the digits) in to a
                             -- one element string and convert back to integer
sum                          -- sum those integers

main function:

[x|x<-[1..]            ]     -- make a list of all x starting from 1
           ,s x==s(x^2)      -- where s x == s (x^2)
                        !!   -- pick nth element from that list

4

জাভাস্ক্রিপ্ট (ES6), 76 73 72 বাইট

n=>eval("for(q=s=>eval([...s+''].join`+`),i=1;q(i)!=q(i*i)||n--;i++);i")

আমি বুঝতে পারছি না যে আমি ভুল ভেরিয়েবলটি আউটপুট দিচ্ছি: 30 বছর এটি কাজ করার চেষ্টা করে: |

এটি শূন্য-সূচকযুক্ত।


1
আমার মনে হচ্ছে এটিকে পুনরাবৃত্তির ফাংশনে পরিণত করা এটিকে অনেক ছোট করে দেবে ...
মামা ফান রোল

4

পার্ল 6, 47 46 বাইট

{(grep {$_.comb.sum==$_².comb.sum},1..*)[$_]}

4

05 এ বি 1 ই , 10 9 8 বাইট

µNÐn‚1öË

1-ইন্ডেক্স।

-1 শেষে ইমিঙ্গাকে অন্তর্নিহিত ½( counter_variableপ্রতিটি পুনরাবৃত্তির পরে বৃদ্ধি ) অপসারণ করে
বাইট ধন্যবাদ -১ বাইট @ গ্রিমিকেSO ব্যবহার করে সদৃশ অপসারণকে ধন্যবাদ‚1ö

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

ব্যাখ্যা:

µ         # Loop while the counter_variable is not equal to the (implicit) input yet:
 NÐ       #  Push the 0-based loop index three times
   n      #  Take the square of this index
          #   i.e. 180 → 32400
         #  Pair it with the index
          #   i.e. 180 and 32400 → [180,32400]
     1ö   #  Convert both numbers from base-1 to base-10, which basically sums the digits
          #   i.e. [180,32400] → [9,9]
       Ë  #  Check if both sums are equal
          #   i.e. [9,9] → 1 (truthy)
          #  (if they are: implicitly increase the counter_variable by 1)
          # (after the loop: implicitly print the top of the stack, which is the remaining
          #  copy of the index from the triplicate we've used)

2
½এটি এখানে অন্তর্নিহিত হিসাবে আপনার প্রয়োজন নেই
Emigna

1
-1: µNDn‚1öËমত SOতবে ভেক্টরাইজ, যা আমাদের কোড অনুলিপি এড়াতে দেয়।
গ্রিমি

@ গ্রিমি আবার ধন্যবাদ। আমি এটি আমার ছোট টিপস পোস্টে একটি পরামর্শ হিসাবে যুক্ত করেছি। :)
কেভিন ক্রুইজসেন

3

গণিত, 64 বাইট

a=Tr@*IntegerDigits;Nest[NestWhile[#+1&,#+1,a@#!=a[#^2]&]&,1,#]&

সাধারণ বেনামে ফাংশন। শূন্য-ইন্ডেক্স।


3

পাইথ, 15

e.fqsjZTsj^Z2TQ

ডেনকারএফিকে 1 বাইট ধন্যবাদ!

এটি এখানে চেষ্টা করুন বা একটি টেস্ট স্যুট চালান ।

1-ইনডেক্সড বিকল্পটি ব্যবহার করে।

নিষ্পাপ বাস্তবায়ন .fযা nপ্রদত্ত শর্তের সাথে মেলে এমন প্রথম নম্বর পায় gets


আপনি hযদি 1-ইনডেক্সিং ব্যবহার করেন যা স্পষ্টভাবে অনুমোদিত।
ডেনকার

@ ডেনারএফে ওহ, ধন্যবাদ আমাকে আরও নিবিড়ভাবে পড়া উচিত: পি
ফ্রাইআম দ্য এজম্যান

2

এমএটিএল , 24 23 বাইট

x`@2:^"@V!Us]=?@]NG<]1$

1-ভিত্তিক ইনপুট ব্যবহার করে।

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

x        % take inpout and delete it (gets copied into clipboard G)
`        %   do...while
  @      %   push loop iteration index: candidate number, n
  2:^    %   array [n n^2]
  "      %   for each element of that array 
    @    %     push that element 
    V!U  %     get its digits (to string, transpose, to number)
    Xs   %     compute their sum
  ]      %   end for each
  =      %   are the two sums equal?
  ?      %   if so
    @    %     the candidate number is valid: push it
  ]      %   end if
  NG<    %   is number of elements in stack less than input?
]        % if so, proceed with next iteration. End do...while. 
1$       % specify 1 input for implicit display: only top of stack

1
খুব সুন্দর যে এমএটিএল অবশেষে সেখানে দূরের সংকলকগুলির মধ্যে তালিকাভুক্ত!
Abr001am 12'16

1

জুলিয়া, 79 66 বাইট

f(n,x=0,i=1,s=c->sum(digits(c)))=x<n?f(n,x+(s(i)==s(i^2)),i+1):i-1

এটি একটি পুনরাবৃত্ত ফাংশন যা কোনও পূর্ণসংখ্যাকে গ্রহণ করে এবং পূর্ণসংখ্যা ফেরত দেয়। এটিতে 1-ভিত্তিক সূচক ব্যবহার করা হয়।

আমরা ফাংশন আর্গুমেন্ট হিসাবে কয়েকটি জিনিস সঞ্চয় করি:

  • n : ইনপুট
  • x : আমরা এই শর্তটি সহ কত সংখ্যক একটি কাউন্টার
  • i : শর্তটি পরীক্ষা করার জন্য একটি নম্বর
  • s : এর ইনপুটটির অঙ্কগুলির যোগফল গণনা করার জন্য একটি ফাংশন

যদিও xইনপুট চেয়ে কম হয়, আমরা recurse, বৃদ্ধিশীল xযদি iঅবস্থা এবং বৃদ্ধিশীল পূরণ করে i। একবার x == n, আমরা ফিরে iআসি, তবে আমাদের 1 টি বিয়োগ করতে হবে কারণ এটি একাধিকবার বৃদ্ধি পেয়েছে।


1

উত্তল 0.2, 36 35 বাইট

উত্তল হল একটি নতুন ভাষা যা আমি বিকাশ করছি যা সিজেএম এবং গল্ফস্ক্রিপ্টের উপর ভিত্তি করে তৈরি is দোভাষী এবং আইডিই এখানে পাওয়া যাবে । কমান্ড লাইন আর্গুমেন্টগুলির মধ্যে ইনপুট একটি পূর্ণসংখ্যা। সূচকগুলি এক-ভিত্তিক। সিপি -1222 এনকোডিং ব্যবহার করে ।

1\{\__2#¶{s:~:+}%:={\(\)\}{)\}?}h;(

1

গণিত, 63 60 61 59 বাইট

Select[Range[9^#],Equal@@Tr/@IntegerDigits/@{#,#^2}&][[#]]&

এটি তৈরি করার সময় অন্য উত্তরটি পপ আপ হয়ে গেছে তবে আমি তাদের একক বাইট দ্বারা প্রহার করছি এবং এটি গল্ফ হওয়ার আগে আমি এই পোস্ট করছি। একটি সূচকযুক্ত।


ইনপুট ব্যর্থ >2457। কেবল আপনার ক্রমবর্ধমান Rangeসাহায্য করবে না কারণ A058369[n]/nএকত্রিত বলে মনে হচ্ছে না।
মার্ডি

উত্তম? ফিলার +
ক্যালকুলেটরফ্লাইন

10^#চেয়ে কম হবে 2^#*9। অবশ্যই এটা খুব ধীর পর এন 6 সম্পর্কে চেয়ে বড় হয়ে ...
feersum

কেন নয় 9^#? ফাইল
ক্যালকুলেটরফ্লাইন

আপনার কাছে কি প্রমাণ আছে যে চ (এন) <= 9? N? (10 সুস্পষ্ট কারণ 10 ^ n সর্বদা একটি সমাধান)।
feersum

1

রেটিনা, 103 বাইট

\d+
$*1 x
{`x+
$.0$*x¶$.0$*a¶$.0$*b
%`b
$_
a+|b+
$.0
\d
$*
+`1¶1
¶
1(.*)¶¶$|¶[^d]+
$1x
}`^ ?x

x

অবশ্যই গল্ফযোগ্য।

স্কোয়ারিংয়ের জন্য নতুন রেটিনা বৈশিষ্ট্যটি% ব্যবহার করে (অতএব এটি এখনও অনলাইন সংস্করণে কাজ করছে না)।


1

Mathcad, 70 50 বাইট

কোনও সংখ্যাকে তার অঙ্কের স্ট্রিংয়ে রূপান্তর করতে ম্যাথক্যাডের কোনও কার্যনির্বাহী নেই, সুতরাং ব্যবহারকারী ফ (ফ) ডি (এ) এই কাজটি করে। একটি প্রোগ্রাম তারপরে ধনাত্মক পূর্ণসংখ্যার মাধ্যমে পুনরাবৃত্তি করে, যোগফলের সমতার জন্য পরীক্ষা করে, যতক্ষণ না এটি ভেক্টরে ভিতে n সংখ্যা জমে থাকে The প্রোগ্রামটি = অপারেটরের সাহায্যে মূল্যায়ন করা হয়, যা ফলাফল ভেক্টরটি প্রদর্শন করে। ( দ্রষ্টব্য যে পুরো প্রোগ্রামটি ম্যাথক্যাড কার্যপত্রকের নীচে প্রদর্শিত হুবহু প্রদর্শিত হবে )

আপডেট হওয়া প্রোগ্রাম: এক থেকে শূন্যের ডিফল্ট সূচনাটি ধরে নিয়েছে এবং ম্যাথ্যাক্যাড একটি প্রোগ্রামে সর্বশেষ মূল্যায়িত বিবৃতিটির মান প্রদান করে তা ব্যবহার করে।
প্রথম সংমিশ্রণে ইনক্রিমেন্ট ভেরিয়েবলের সাথে এক্সপ্রেশনগুলির মূল্যায়ন আদেশের ব্যবহার করে (এবং যা স্কোয়ারের যোগফলের জন্য ব্যবহারের জন্য উপলব্ধ)

এখানে চিত্র বর্ণনা লিখুন

আসল প্রোগ্রাম: এন পর্যন্ত সমস্ত সংখ্যার ভেক্টরকে ফেরত দেয়।

এখানে চিত্র বর্ণনা লিখুন



0

জাভা 8, 113 বাইট

n->{int r=0;for(;n>=0;)if((++r+"").chars().map(c->c-48).sum()==(r*r+"").chars().map(c->c-48).sum())n--;return r;}

0-ইন্ডেক্স

ব্যাখ্যা:

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

n->{           // Method with integer as both parameter and return-type
  int r=0;     //  Result-integer, starting at 0
  for(;n>=0;)  //  Loop as long as `n` is zero or positive
    if((++r    //   Increase `r` by 1 first
       +"").chars().map(c->c-48).sum()
               //   And if the sum of its digits
       ==(r*r+"").chars().map(c->c-48).sum())
               //   equals the sum of the digit of its square
      n--;     //    Decrease `n` by 1
  return r;}   //  Return the result


0

টিআই-বেসিক 66 62 বাইট

Ans→N:While X<N:IS>(A,A::A:prgmA:Ans→B:A²:prgmA:If B=Ans:IS>(X,N:End:A
sum(int(10fPart(Ans₁₀^(seq(⁻X-1,X,0,log(Ans

এনAns
এন

সহায়ক ফাংশন মানটির সংখ্যার যোগফল তৈরি করে Ans

উদাহরণ:

3:prgmCDGF1E
             10
5:prgmCDGF1E
             19
8:prgmCDGF1E
             55
10:prgmCDGF1E
             99

ব্যাখ্যা:

Ans→N:While X<N:IS>(A,A::A:prgmA:Ans→B:A²:prgmA:If B=Ans:IS>(X,N:End:A ;prgmCDGF1E

Ans→N            ;store the input in N
While X<N        ;loop until the Nth term has been reached
IS>(A,A:         ;add 1 to A
                 ; (Increment A and skip the next statement if A>A)
A                ;leave A in Ans
prgmA            ;call the helper program below
Ans→B            ;store the result of the helper program in B
A²               ;square A and leave the result in Ans
prgmA            ;call the helper program below
                 ; (result is in Ans)
If B=Ans         ;if the two results are equal
IS>(X,N          ;add 1 to X
                 ; (Increment X and skip the next statement if X>N)
End
A                ;leave A in Ans
                 ;implicit print of Ans

sum(int(10fPart(Ans₁₀^(seq(⁻X-1,X,0,log(Ans   ;prgmA

                      seq(⁻X-1,X,0,log(Ans    ;generate a list...
                                              ; using X as the variable,
                                              ; starting at 0,
                                              ; ending at the log of Ans,
                                              ; and evaluating "⁻X-1" for each element
                                              ; (implicit increment of 1)
                   ₁₀^(                       ;raise 10 to the power of each element
                Ans                           ;multiply each element by the input
          fPart(                              ;remove the integer part from each element
        10                                    ;multiply each element by 10
    int(                                      ;round each element to the nearest integer
sum(                                          ;then sum the resulting list

দ্রষ্টব্য: টিআই-বেসিক একটি টোকেনাইজড ভাষা। চরিত্র গণনা হয় না বাইট গণনা সমান ।



0

এপিএল (এনএআরএস), 49 টি চর, 98 বাইট

r←h w;c
c←r←0
→2×⍳∼=/+/¨(⍎¨⍕)¨r,r×r+←1⋄→2×⍳w>c+←1

1-ইনডেক্সড, পরীক্ষা:

  h¨⍳20
1 9 10 18 19 45 46 55 90 99 100 145 180 189 190 198 199 289 351 361 

0

ম্যাথগল্ফ , 10 বাইট

♪╒gÆ‼Σ²Σ=§

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

ব্যাখ্যা

ú10এন

♪            push 1000
 ╒           range(1,n+1)
  gÆ         filter list using the next 5 operators
    ‼        apply next two commands to TOS
     Σ       sum(list), digit sum(int)
      ²      pop a : push(a*a) (square)
       Σ     sum(list), digit sum(int) (pushes the digit sum of the square)
        =    pop(a, b), push(a==b) (compares the two)
         §   get from array (returns the <input>th item from the filtered list

সম্ভবত আমার ম্যাথগল্ফের জন্য কেবল একটি চ্যাট তৈরি করা উচিত .. যাইহোক, আমার একটি প্রশ্ন আছে: প্রতিস্থাপন, বিভক্ত এবং এরকম স্ট্রিংয়ের জন্য কি কোনও বিল্টিন রয়েছে? আমার অনুভূতি রয়েছে যে সংক্ষেপণটি এখানে বাইটগুলি সংরক্ষণ করতে পারে তবে বিল্টিনগুলি এটি সম্পাদন করার জন্য উপস্থিত কিনা তা নিশ্চিত exist
কেভিন ক্রুইজসেন

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