নারিকিসিজমের জন্য একটি নম্বর পরীক্ষা করুন


53

একটি নার্সিসিস্টিক সংখ্যা হ'ল এমন একটি সংখ্যা যা তার নিজস্ব অঙ্কের যোগফল, প্রতিটি সংখ্যার সংখ্যার শক্তিতে উত্থাপিত হয়।

উদাহরণস্বরূপ, 153 (3 সংখ্যা) নিন:

1 3 + 5 3 + 3 3 = 1 + 125 + 27 = 153

1634:

1 4 + 6 4 + 3 4 + 4 4 = 1 + 1296 + 81 + 256 = 1634

চ্যালেঞ্জ:

আপনার কোডটি অবশ্যই ব্যবহারকারীর কাছ থেকে ইনপুট নিতে হবে এবং প্রদত্ত নম্বরটি নারিকিসিস্টিক নম্বর কিনা তার উপর নির্ভর করে সত্য বা মিথ্যা আউটপুট দেয়।

পাঠ্য স্ট্রিং বা অন্য অবৈধ ইনপুটগুলির জন্য পরীক্ষা করার সময় ত্রুটি প্রয়োজন হয় না। আউটপুট জন্য 1 বা 0 গ্রহণযোগ্য। কোড যা কেবলমাত্র নারিকিসিস্টিক নাম্বারগুলির একটি তালিকা উত্পন্ন করে বা কোনও তালিকার বিপরীতে ব্যবহারকারীদের ইনপুট চেক করে, তা যোগ্য নয়।

OEIS A005188


3
আমি যদি আউটপুট Trueএটি যদি এমন একটি সংখ্যা হয় তবে ঠিক আছে , তবে অন্য কিছু (যদি এই সংখ্যাটি নিজেই থাকে) না হলে?
devRicher

উত্তর:


39

এপিএল (15)

∆≡⍕+/(⍎¨∆)*⍴∆←⍞

আউটপুট 1যদি সত্য ও 0মিথ্যা পারেন।

ব্যাখ্যা:

  • ∆←⍞: একটি লাইন পড়ুন (অক্ষর হিসাবে), সঞ্চয় করুন
  • (⍎¨∆)*⍴∆: প্রতিটি অক্ষরকে মূল্যায়ন করুন এবং এটিকে শক্তিতে বাড়ান⍴∆
  • ∆≡⍕+/: দেখুন ইনপুটটি এইগুলির যোগফলের স্ট্রিং প্রতিনিধির সমান কিনা

9
আমি সবেমাত্র কী পড়লাম
Jbwilliams1

4
@ ল্যাগওগন God'sশ্বরের ভাষা
টমসডিং করুন

21

গল্ফস্ক্রিপ্ট, 16 টি অক্ষর

~.`:s{48-s,?-}/!

এসটিডিআইএন-এ ইনপুট অবশ্যই দিতে হবে, আউটপুট 0 বা 1 হ'ল নন-ন্যারিসিস্টিক / নারিকিসিস্টিক নম্বর নির্দেশ করে।

কোডের ব্যাখ্যা:

~              # Evaluate the input to get a number
.              # Accumulator (initially the number itself)
`:s            # Convert number to string and assign to variable s
{              # Loop over characters of the string
  48-          # Reduce character value by 48
  s,           # Push length of input number
  ?            # Power
  -            # Subtract result from accumulator
}/
!              # Not! (i.e. iff accumulator was zero it was a narcissistic number)

আমি `` ~ .` `on এ ডাবল-টেক করেছিলাম তবে উন্নতি করা অসম্ভব বলে মনে হচ্ছে। সুন্দর.
পিটার টেলর


14

পার্ল, 38 টি অক্ষর

perl -lpe '$@=y///c;$s+=$_**$@for/./g;$_=$_==$s'

একটি দুর্দান্ত সোজা বাস্তবায়ন।

এখানে কিছুটা আলাদা সংস্করণ যা 35 টি অক্ষরে ফিট করে:

perl -lpe '$@=y///c;$s+=$_**$@for/./g;$_-=$s'

এই সংস্করণটি একটি মিথ্যা মান আউটপুট দেয় যদি ইনপুটটি স্নাতকোত্তর হয় তবে অন্যথায় এটি একটি (পার্ল-স্বীকৃত) সত্য মানকে আউটপুট করে। কেউ তর্ক করতে পারে যে এই পিছনের সংস্করণটি চ্যালেঞ্জের বর্ণনার সীমাতে চলে আসে, তবে প্রতিচ্ছবিতে আমি সিদ্ধান্ত নেওয়ার সিদ্ধান্ত নিই। আমি আমার স্কোর উন্নতি করতে মরিয়া না। এখনো.


"পাঠ্য স্ট্রিং বা অন্য অবৈধ ইনপুটগুলির জন্য ত্রুটি পরীক্ষা করার প্রয়োজন নেই” "- তাহলে কেন অনুমান করুন না যে ইনপুটটি নতুন লাইন অনুসরণ না করে বৈধ সংখ্যা হবে? echo -n 153 | perl -pe '…'ছাড়া কাজ করবে -l
manatwork

আমি মনে করি যতক্ষণ আপনি আপনার সত্য এবং মিথ্যা আউটপুটগুলি সংজ্ঞায়িত করেন ততক্ষণ এটি আইনী হওয়া উচিত
ক্রাঙ্কার

কড়া কথায় বলতে গেলে, চ্যালেঞ্জ পাঠ্যের শব্দটির অর্থ সত্য / মিথ্যা বা 0/1 এর অর্থ কী হবে তা নিয়ে কিছুটা অস্পষ্টতা ছেড়ে যায়, তাই আমি এইটিকে পাস করব। সমান দৈর্ঘ্যের একটি পৃথক স্ক্রিপ্ট যা নারকিসিস্টিক মানগুলির জন্য সত্য দেয় এটির সুবিধা থাকবে।
ইসজি

একই ধারণা তবে সংক্ষিপ্ত:perl -pe'map$s+=$_**@y,@y=/./g;$_=$_==$s'
এমএস 210

13

জে, 23 অক্ষর

(".=+/@("."0^#))(1!:1)1

(1!:1)1 হ'ল কিবোর্ড ইনপুট (একটি স্ট্রিং ফিরিয়ে দেওয়া)।

".একটি সংখ্যায় ইনপুট রূপান্তর; "0অন্য কথায় 0 এর একটি র‌্যাঙ্ক (মাত্রা) নির্দিষ্ট করে, প্রতিটি অক্ষর গ্রহণ করে এবং এটি একটি সংখ্যায় রূপান্তর করে।

^শক্তি ফাংশন এবং #দৈর্ঘ্যের ফাংশন, এভাবে প্রতিটি সংখ্যাকে স্ট্রিংয়ের দৈর্ঘ্যের শক্তিতে নিয়ে যায় (সমানভাবে, সংখ্যাগুলির সংখ্যা)।

+/এটি কেবল যোগফল, এবং =যোগফল এবং সংখ্যাটির সাথে তুলনা করে।


2
"আপনার কোড অবশ্যই ব্যবহারকারীর কাছ থেকে ইনপুট নিতে হবে এবং প্রদত্ত নম্বরটি নারিকিসিস্টিক নম্বর কিনা তার উপর নির্ভর করে সত্য বা মিথ্যা আউটপুট দেয়।" (জোর আমার)
জন Dvorak

@ জনডভোরাক আমার খারাপ - কীবোর্ড ইনপুট যুক্ত হয়েছে।
যৌক্তিক

12

রুবি, 34 + 5 = 39

কমান্ড-লাইন পতাকা সহ

ruby -nlaF|

চালান

p eval [$F,0]*"**#{~/$/}+"+"==#$_"

ফলাফল সত্য বা মিথ্যা true


3
এটি এখন পর্যন্ত কোনও বৈধ কোড গল্ফে দেখা সবচেয়ে বেশি রুবি পতাকা হতে পারে: পি
ডোরকনব

11

আর, 71 69 66 56 48

@ জিউজ্প্পকে ধন্যবাদ 8 বাইট দ্বারা হ্রাস ! ধারণাটি ছিল মডুলো অপারেশনের আগে পূর্ণসংখ্যা বিভাগ সম্পাদন করা।

i=nchar(a<-scan()):0;a==sum((a%/%10^i%%10)^i[1])

(3 বছরের) পুরানো সংস্করণ সম্পর্কিত ব্যাখ্যা সহ:

i=nchar(a<-scan()):1;a==sum(((a%%10^i)%/%10^(i-1))^i[1])

a<-scan()ইনপুট হিসাবে একটি সংখ্যার (পূর্ণসংখ্যা, আসল, ...) নেয় ( 153উদাহরণস্বরূপ বলুন)।
i3 থেকে 1 ( a3 হওয়ার অক্ষরের সংখ্যা ) সমেত ভেক্টর হয়ে যায় ।
%%ভেক্টরাইজড তাই মডিউল 1000, 100 এবং 10 এর a%%10^iঅর্থ a: এটি তাই দেয় 153, 53, 3
(a%%10^i)%/%10^(i-1)100, 10, 1 দ্বারা সেই ভেক্টরের পূর্ণসংখ্যা বিভাগ: সুতরাং 1, 5, 3,।
আমরা এর প্রথম উপাদানটির সাথে এর উচ্চতর iযা অক্ষরের সংখ্যা (এখানে অঙ্কগুলি) a, অর্থাত্ 3, এইভাবে একটি ভেক্টর দেয় 1, 125, 27যা আমরা sumএবং তুলনা করি a


পূর্ণসংখ্যা বিভাগ সর্বদা গোল হয়ে যায়? অন্যথায়, আপনি উদাহরণস্বরূপ 370 (একটি নরসিস্টিস্টিক সংখ্যা) 4,7,0 (যা মিথ্যা প্রত্যাবর্তন করবে) বা 270 (নন-নারিসিসিস্টিক) এ 3,7,0 (সত্য প্রত্যাবর্তন) রূপান্তরিত হয়ে সমস্যায় পড়তে পারেন।
ইসজি

পূর্ণসংখ্যা বিভাগটি গোল হয় না ... ৩0০ বাই ১০০ এর পূর্ণসংখ্যা বিভাগটি 70০ এর বাকী অংশ এবং 3.. not০ নয় 3
প্ল্যানাপাস

1
48 বাইট ... কেউ এই হোমপৃষ্ঠা এ bumped!
জিউসেপে

9

পাইথন 3, 56 বাইট

খুব অচল নয়, তবে একটি সহজ সমাধান।

s = input()
print(int(s)==sum(int(c)**len(s)for c in s))

1
[এবং ]অপ্রয়োজনীয় হয়, এবং আপনার সামনে স্থান ড্রপ করতে পারেন forখুব, তাই:sum(int(c)**len(s)for c in s)
সামুদ্রিক

সেটা খুবই ভালো! ভকভগক.
danmcardle

1
আপনি ফাঁকা স্থানগুলি সরিয়ে দুটি অক্ষর সংরক্ষণ করতে পারেন s = input()এবং অন্য একটি এটি 2.7 এ স্থানান্তর করে যেখানে printকোনও ফাংশন নেই।
বেন

ভাল পয়েন্ট, সম্পাদিত।
danmcardle

আমি মনে করি আপনার উল্লেখ করা উচিত যে print(আরও একটি চরিত্রের আরও বেশি) বন্ধনী যুক্ত করার ফলে এটি একটি বৈধ পাইথন ২.x এবং পাইথন ৩.x সমাধান তৈরি করে।
মার্টিন থোমা

8

পিএইচপি, 80 74 66 অক্ষর

খুব সোজা পিএইচপি সমাধান:

<?for(;$i<$l=strlen($a=$argv[1]);)$s+=pow($a[$i++],$l);echo$s==$a;

এটি ধরে নিয়েছে error_reportingনোটিশগুলি অন্তর্ভুক্ত নয়, অন্যথায় আরম্ভ করার জন্য বেশ কয়েকটি অতিরিক্ত অক্ষর প্রয়োজন হবে $s=0;এবং $i=0

সংক্ষিপ্ত চরিত্র সংক্ষিপ্ত করার জন্য THX @ মান্যাটওয়ার্ক।


পৃথক বিবৃতিতে $ a এবং $ l নির্ধারণ করবেন না। <?for($i=0;$i<$l=strlen($a=$argv[1]);$i++){$s+=pow($a[$i],$l);}echo$s==$a;খাটো হয়।
manatwork

আপনার ইতিমধ্যে একটি বিবৃতি যা একটি নোটিশ জেনারেট করেছে, কেবল অন্য একটি যুক্ত করুন: লুপ নিয়ন্ত্রণ ভেরিয়েবল ইনিশিয়ালাইজেশন সরান। লুপ কন্ট্রোল ভেরিয়েবল বৃদ্ধি করার ক্ষেত্রেও স্ট্যান্ড স্টোন স্টেটমেন্ট হওয়া দরকার না। আর ধনুর্বন্ধনী স্পষ্টভাবে প্রয়োজন হয় না: <?for(;$i<$l=strlen($a=$argv[1]);)$s+=pow($a[$i++],$l);echo$s==$a;
manatwork

@ মানাটওয়ার্ক: কোডগল্ফকে উষ্ণ অভ্যর্থনার জন্য আপনাকে ধন্যবাদ :)
ভ্লাদ

এতে গল্ফ করা যেতে পারেfor(;$i<$l=strlen($a=$argn);)$s+=$a[$i++]**$l;echo$s==$a;
জার্গ হালসারম্যান

8

ডিসি: 48 টি অক্ষর

[1pq]Sr?d0rdZSz[d10/r10%lz^rSh+Lhd0!=c]dScx+=r0p

নমুনা রান:

bash-4.1$ dc -e '[1pq]Sr?d0rdZSz[d10/r10%lz^rSh+Lhd0!=c]dScx+=r0p' <<< '153'
1

bash-4.1$ dc -e '[1pq]Sr?d0rdZSz[d10/r10%lz^rSh+Lhd0!=c]dScx+=r0p' <<< '1634'
1

bash-4.1$ dc -e '[1pq]Sr?d0rdZSz[d10/r10%lz^rSh+Lhd0!=c]dScx+=r0p' <<< '2013'
0

বাস্তবে কখনও ব্যবহার করা হয়নি dc, লেখার প্রয়াসে ফ্র্যাঙ্কিক টাইপগুলির জন্য সংরক্ষণ করুনcd
স্টান স্ট্রাম

8

কে, 24 23

{x=+/xexp["I"$'a]@#a:$x}

পুনর্লিখনের সাথে 1 টি চাঁচা করা হয়েছে

{x=+/{x xexp#x}"I"$'$x}

8

আর, 53 বাইট

sum(scan(t=gsub("(.)","\\1 ",x<-scan()))^nchar(x))==x

gsubRegex, অক্ষরের মধ্যে মধ্যে শূণ্যস্থান সন্নিবেশ যাতে scanফাংশন ডিজিটের একটি ভেক্টর মধ্যে সংখ্যা পড়তে সক্ষম হতে হবে।


+1 আমি কখনই এটি করার কথা ভাবিনি, এটি উজ্জ্বল।
প্ল্যানাপাস


6

পাওয়ারশেল, 75 63 62 60 58

সম্পাদনা: @ ইসজির মন্তব্য অনুসারে আপডেট হয়েছে (দ্রষ্টব্য: এটি $xবিদ্যমান নেই বলে গণনা করা হয় )

সম্পাদনা: @ ড্যাঙ্কোর পরিবর্তনগুলি যুক্ত হয়েছে।

[char[]]($x=$n=read-host)|%{$x-="$_*"*$n.length+1|iex};!$x

58 56 অক্ষর

যদি ইনপুটটি 10 ​​ডিজিটের মধ্যে সীমাবদ্ধ থাকে (সমস্ত অন্তর্ভুক্ত থাকে 32)

($x=$n=read-host)[0..9]|%{$x-="$_*"*$n.length+1|iex};!$x

আমি ভাবছিলাম যে আমার করার আগে কেউ পাওয়ারশেল করছে কিনা।
ইসজি

অন্য ভেরিয়েবল যুক্ত করে 12 টি অক্ষর সংরক্ষণ করুন $xএবং তারপরে পরীক্ষার +=পরিবর্তে আপনার যোগফলটি ব্যবহার করে । measure -sum$x-eq$n
ইসজি

1
61 টি অক্ষর:($x=$n=read-host)-split''|%{$x-=[math]::pow($_,$n.length)};!$x
ডানকো দুর্বিয়

1
@ ড্যাঙ্কোডুর্বি, ভাল লাগছে! টাইপ জবরদস্তি প্রায়শই PoSh কোড গল্ফিংয়ের সাথে আসে। আমি যখন চালিত তখনই আমি 62 পেয়েছি'($x=$n=read-host)-split""|%{$x-=[math]::pow($_,$n.length)};!$x'.length
Rynant

1
@ রাইনেন্ট ভাল পয়েন্ট। আমি পাওয়ারশেলে আপনার দৈর্ঘ্যের চেকটি চালিয়েছি এবং 62 নিয়ে এসেছি। বিরুদ্ধে দৈর্ঘ্য চেক চলমান যখন একভাবে প্রকৃত স্ক্রিপ্ট, এটা আসে আপ 61 কারণ সম্ভবত কিভাবে PowerShell পরিচালনা হয় ''যা আপনি দিয়ে প্রতিস্থাপিত ''। আমি ডাবল-চেক করতে এক্সেলটিতে মূল স্ক্রিপ্টটি নিয়েছি =LEN("($x=$n=read-host)-split''|%{$x-=[math]::pow($_,$n.length)};!$x")এবং 62 টিও পেয়েছি। অবশ্যই, আমরা সর্বদা এটি ম্যানুয়ালি গণনা করতে পারি - তবে কে তা সত্যিই করে?
ইসজি

5

পাইথন 2.x - 51

পাইথন 3.x এর জন্য ক্রেজেডগ্রিমলিনের সমাধান হিসাবে একই ধারণা:

s=input();print s==sum(int(c)**len(`s`)for c in`s`)

4

সি - 97 93 টি অক্ষর

a,b;main(c){scanf("%d",&c);b=c;for(;c;c/=10)a+=pow(c%10,(int)log10(b)+1);printf("%d",a==b);}

ইন্ডেন্টেশন সহ:

a,b;
main(c) { 
  scanf("%d",&c);
  b=c;
  for(;c;c/=10)
    a+=pow(c%10,(int)log10(b)+1);
  printf("%d",a==b);
}

2
intগ্লোবাল ভেরিয়েবলের জন্য আপনাকে সংজ্ঞা দিতে হবে না ।
কনরাড বোরোস্কি

ওহো। আপনি ইনপুটটি পড়ছেন argc
সাইনস্ট্যাকফুল্ট

এছাড়াও, -lmসংকলন-সময় গণনা +1 বাইট করা উচিত নয় ?
সাইনস্ট্যাকএফএল্ট

@ ব্ল্যাকসিলভারে সি 89 সংকলকগুলির জন্য -lmপতাকাটির প্রয়োজন নেই।
জোশ

আহা। প্রতিদিন একটি নতুন জিনিস শিখুন।
সিগস্ট্যাকফুল্ট

4

ডেলফি - 166

uses System.SysUtils,math;var i,r,l:integer;s:string;begin r:=0;readln(s);l:=length(s);for I:=1to l do r:=round(r+power(strtoint(s[i]),l));writeln(inttostr(r)=s);end.

ইনডেন্ট সহ

uses System.SysUtils,math;
var
  i,r,l:integer;
  s:string;
begin
  r:=0;
  readln(s);
  l:=length(s);
  for I:=1to l do
    r:=round(r+power(strtoint(s[i]),l));
  writeln(inttostr(r)=s);
end.


3

হাস্কেল 2010 - 76 টি অক্ষর

main=do x<-getLine;print$(==x)$show$sum$map((^length x).(+(-48)).fromEnum)x

1
কোডটি চালানোর জন্য আপনার এমএসের সংখ্যা পোস্ট করা উচিত নয়, তবে আপনি ব্যবহার করা অক্ষরের সংখ্যা। ;)
অজানা

3

অজানা: 40 39 টি অক্ষর

{for(;i<NF;)s+=$(i+++1)**NF;$0=$0==s}1

নমুনা রান:

bash-4.1$ awk -F '' '{for(;i<NF;)s+=$(i+++1)**NF;$0=$0==s}1' <<< '153'
1

bash-4.1$ awk -F '' '{for(;i<NF;)s+=$(i+++1)**NF;$0=$0==s}1' <<< '1634'
1

bash-4.1$ awk -F '' '{for(;i<NF;)s+=$(i+++1)**NF;$0=$0==s}1' <<< '2013'
0

3

বাশ, rs৪ টি অক্ষর

for((a=$1;a>0;s+=(a%10)**${#1},a/=10));do :; done;echo $[s==$1]

a = $ 1; পি = $ {# এ}; এর জন্য ((; a> 0; a / = 10)); ড এস = $ ((এস + (একটি% 10) ** পি)); সম্পন্ন; প্রতিধ্বনি $ ( (গুলি == $ 1))


1
আপনি একক স্থানে ভেরিয়েবল পি ব্যবহার করছেন তাই এর দরকার নেই। আপনি মধ্যে পরিবর্তনশীল একটি আরম্ভের স্থানান্তর করতে পারেন forতার পৃথক অনাবশ্যক ;: for((a=$1;a>0;a/=10));do s=$[s+(a%10)**${#1}];done;echo $[s==$1]
manatwork

1
মধ্যে মূল্যায়ন সরিয়ে forআরও একটি চরিত্র সংক্ষিপ্ত করা যেতে পারে: for((a=$1;a>0;s+=(a%10)**${#1},a/=10));do :; done;echo $[s==$1]
manatwork

ওহ, কৌতূহলী! আমি এরকম কিছু চেষ্টা করেছিলাম, কিন্তু এটি কার্যকর হয়নি। কি ভুল হয়েছে কৌতূহল।
ব্যবহারকারী অজানা

3

লুয়া (101 টি অক্ষর)

লুয়া সংক্ষিপ্ত হওয়ার জন্য পরিচিত নয়, তবে যাইহোক চেষ্টা করার জন্য এটি মজাদার ছিল।

for n in io.lines()do l,s=n:len(),0 for i=1,l do d=n:byte(i)s=s+(d-48)^l end print(s==tonumber(n))end

উন্নতি স্বাগত জানায়।


আপনার প্রোগ্রামটি সংখ্যার একটি তালিকা পরিচালনা করতে ও প্রক্রিয়া করতে পারে এমনটি প্রয়োজন হয় না, তাই আমি এই কার্যকারিতাটি প্রয়োগ করতে বাইট ব্যবহার করব না। লুপ প্রতিস্থাপন for n in io.lines()do [...]endসঙ্গে n=io.read()কিছু বাইট (সংরক্ষণ Tio )।
জোনাথন ফ্রেচ

3

জাভাস্ক্রিপ্ট - 70 58 টি অক্ষর

for(i in a=b=prompt())b-=Math.pow(a[i],a.length)
alert(!b)

বিঃদ্রঃ:

আপনি যদি স্ট্যাক এক্সচেঞ্জে আপনার ডেভ কনসোলটিতে এটি পরীক্ষা করে থাকেন তবে সচেতন হোন যে এর সাথে অনেকগুলি মান-মানসম্পন্ন বৈশিষ্ট্য যুক্ত হয়েছে String.prototypeযা এই সমাধানটি ভেঙে ফেলবে, যেমন String.prototype.formatUnicorn। যেমন একটি পরিষ্কার পরিবেশে পরীক্ষা করতে ভুলবেন না about:blank


আমি সেখানে 70 টি চরিত্র গণনা করি।
manatwork

@ মান্যাটওয়ার্ক, ওফ, নতুন লাইনটি গণনা করতে ভুলে গেছেন।
zzzzBov

দুর্দান্ত কৌশল যে হ্রাস!
manatwork

2
এটি সর্বদা trueআমার জন্য ফিরে আসে , ইনপুট নির্বিশেষে
কোকো

@ কোকো, আপনি কেন ভুল ফলাফল পাচ্ছেন তা বোঝাতে আমি একটি নোট যুক্ত করেছি।
zzzzBov

3

জাভা - 84 বাইট

(a,l)->{int s=0;for(byte c:a.getBytes())s+=Math.pow(c-48,l);return a.equals(""+s);};

অ-ল্যাম্বদা সংস্করণ: 101 বাইট:

boolean n(String a,int l){int s=0;for(byte c:a.getBytes())s+=Math.pow(c-48,l);return a.equals(""+s);}

এভাবে ডাকা:

interface X {
    boolean n(String a, int l);
}

static X x = (a,l)->{int s=0;for(byte c:a.getBytes())s+=Math.pow(c-48,l);return a.equals(""+s);};

public static void main(String[] args) {
    System.out.println(n("153",3));
    System.out.println(n("1634",4));
    System.out.println(n("123",3));
    System.out.println(n("654",3));
}

রিটার্নস:

true
true
false
false

ল্যাম্বদা আর্গুমেন্টের চারপাশে আপনি প্রথম বন্ধনী সরাতে পারেন, a,l->ঠিক একইভাবে কাজ করে।
ফ্লিপট্যাক

আমি জানি আপনি প্রায় এক বছর আগে এর উত্তর দিয়েছেন, তবে আপনি দুটি বাইট গল্ফ করতে পারেন: (a,l)->হতে পারে a->l->এবং byteহতে পারে int:a->l->{int s=0;for(int c:a.getBytes())s+=Math.pow(c-48,l);return a.equals(""+s);}
কেভিন ক্রুইজসেন

3

জাপট , 14 9 7 বাইট

¶ì_xpZÊ

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


ব্যাখ্যা

পূর্ণসংখ্যার অন্তর্নিহিত ইনপুট U

ì_

Uঅঙ্কের অ্যারেতে রূপান্তর করুন ( ì), এটি কোনও ফাংশনের মধ্য দিয়ে দিন এবং পরে কোনও পূর্ণসংখ্যায় রূপান্তর করুন।

xpZÊ

প্রক্রিয়াটিতে অ্যারের দৈর্ঘ্য ( ) এর xপাওয়ার ( p) এ প্রতিটি উপাদান বাড়িয়ে ( ) দ্বারা হ্রাস করুন Ê

ফলাফলটি কঠোরভাবে সমান কিনা তা পরীক্ষা করে দেখুন U


আমি মনে করি ¥U¬®n pUlÃx11 বাইটের জন্য কাজ করবে;)
অলিভার


2

কমন লিস্প - 116 টি অক্ষর

(defun f(m)(labels((l(n)(if(> n 0)(+(expt(mod n 10)(ceiling(log m 10)))(l(floor n 10)))0)))(= m(l m))))

বিন্যাসকৃত:

(defun f(m)
  (labels((l(n)
            (if(> n 0)
               (+(expt(mod n 10)(ceiling(log m 10)))
                 (l(floor n 10)))
               0)))
    (=(l m)m)))

2

ছোট্ট টাল - 102 99 টি অক্ষর

[:n|a:=n asString collect:[:e|e digitValue]as:Array.^n=(a collect:[:each|each raisedTo:a size])sum]

ওয়ার্কস্পেসে, value:নম্বরটি সহ প্রেরণ করুন এবং এটি মুদ্রণ করুন।


2

সি #, 117

using System.Linq;class A{int Main(string[] a){return a[0].Select(c=>c-'0'^a[0].Length).Sum()==int.Parse(a[0])?1:0;}}

2

হাস্কেল, 68 66 বাইট

d 0=[]
d n=mod n 10:d(div n 10)
sum.(\a->map(^length a)a).d>>=(==)

ব্যবহার:

*Main> sum.(\a->map(^length a)a).d>>=(==) $ 1634
True
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.