আমি কি একটি অটোমোরফিক নম্বর?


20

একটি অটোমোরফিক নম্বর এমন একটি সংখ্যা যা এটি বেস 10 এর বর্গের প্রত্যয় হয় এটি OEIS এর ক্রম A003226

তোমার কাজ:

একটি ইনপুট একটি স্বয়ংক্রিয় নম্বর কিনা তা নির্ধারণ করতে একটি প্রোগ্রাম বা ফাংশন লিখুন।

ইনপুট:

0 এবং 10 ^ 12 (অন্তর্ভুক্ত) এর মধ্যে একটি পূর্ণসংখ্যা, এটি একটি অটোমোরফিক নম্বর বা নাও হতে পারে।

আউটপুট:

ইনপুটটি অটোমোরফিক নম্বর কিনা তা নির্দেশ করে একটি সত্যবাদী / মিথ্যা মান।

উদাহরণ:

0           -> truthy
1           -> truthy
2           -> falsy
9376        -> truthy
8212890625  -> truthy

স্কোরিং:

এটি , বাইট জয়ের সর্বনিম্ন স্কোর।


9
বিটিডব্লিউ 1e12 এর সীমাটির অর্থ জমা দেওয়ার জন্য 1e24 পর্যন্ত সংখ্যাগুলি পরিচালনা করতে হবে যা একটি 80-বিট সংখ্যা। যদি বৃহত সংখ্যক হ্যান্ডলিং করা একটি কঠোর প্রয়োজন হয়, তবে বহির্গমন উত্তরগুলির মধ্যে অনেকগুলি অবৈধ।
ডেনিস

আমাদের কি এমন নম্বরগুলি পরিচালনা করতে হবে যা আমাদের নির্বাচিত ভাষায় নির্ভুলতার সমস্যার দিকে নিয়ে যায়?
শেগি

আপনি যদি সে সম্পর্কে স্ট্যান্ডার্ড লুফোলটি অপব্যবহার না করেন তবে তা ঠিক থাকবে ided
গ্রিফন - মনিকা


এটি একটি দীর্ঘ দিন হয়ে গেছে এবং আমি খুব, খুব ক্লান্ত হয়ে পড়েছি তবে আপনার মন্তব্যগুলি আমার জেএস সমাধানটিকে বৈধতা হিসাবে দেখেছে। আপনি কি তা নিশ্চিত করতে পারবেন? (না থাকলে মুছতে কোনও সমস্যা নেই)
শেগি

উত্তর:


11

ব্র্যাচল্যাগ , 5 বাইট

~√a₁?

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

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

~√a₁?
~√      the input is the square root of a number
  a₁    whose suffix is
    ?   the input

না, এটি বলে যদি x এর বর্গের প্রত্যয় হয়।
ডাব্লুগ্রোলাউ

2
√a₁?কেন না?
সম্পূর্ণমানবিক

38

পাইথন 2 , 24 বাইট

lambda n:`n*1L`in`n**2L`

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

ইতিহাসে প্রথমবারের মতো পাইথন 2 এর দীর্ঘস্থায়ী প্রতিবেদনে একটি সংযোজন Lহ'ল বাগের চেয়ে বৈশিষ্ট্য।

ধারণাটি যদি হয় কিনা তা পরীক্ষা করে দেখা হয়, এটি একটি সাবস্ট্রিং কিনা তা পরীক্ষা করে 76^2=5776শেষ হয় । করতে , অ-বিশাল সংখ্যার জন্য প্রদর্শিত আমরা সংখ্যাবৃদ্ধি দ্বারা অথবা একটি দীর্ঘ সঙ্গে একটি দীর্ঘ উৎপন্ন সঙ্গে ব্যাখ্যামূলক হিসাবে, একটি গাণিতিক অপারেশন গেছে।7676L5776LL1L2L


9

পাইথন 2 , 31 বাইট

এক্সনর-এর বাইরে গল্ফড ... (এটি প্রতিটি সময়ই ঘটে)> <ওহে, আশ্চর্যজনকভাবে জন্য এটি পাইথোনিক ।

লোকেরা পাইথনের মনে রাখার ঝোঁক রাখে না str.endswith()...

lambda n:str(n*n).endswith(`n`)

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


আপনি `n*n`সংখ্যাকে স্ট্রিংয়ে রূপান্তর করতে ব্যবহার করতে পারবেন না ?
ডাউনগোট

@ ডাউনগোট যে দীর্ঘ সংখ্যায় 'এল' রাখে।
সম্পূর্ণরূপে

@ টোটালিহুমান ভাল কথা, আমি এর ব্যবহারটি মিস করেছি।
isaacg

5

6
আমি কীভাবে এটি কাজ করে তা জানতাম v
isaacg

আমি মনে করি, nবর্গক্ষেত্র, .sপ্রত্যয়, ¹এটি ইনপুট এবং åসদস্যতার জন্য পরীক্ষাগুলি @ আইস্যাক
কনর ও'ব্রায়ান

@ আইসএইচজি কনর কী বলেছিল ... ব্যাখ্যা যুক্ত করার সময় নেই।
এরিক আউটগল্ফার

5

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

$
;918212890625;81787109376;0;1;
^(\d+;).*\1

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

10-অ্যাডিক সমীকরণের ঠিক 4 টি সমাধান রয়েছে x*x = x


1
উহ? এই সমস্ত সংখ্যা কি বৈধ সমাধান নয়?
লিও

@ লিও না, তারা নেই। স্পষ্টতই 5*5 != 5। তবে আপনি সংযুক্ত সংখ্যায় কিছু প্যাটার্ন লক্ষ্য করতে পারেন। 4 টি সমাধান হ'ল: 0, 1, ... 59918212890625, ... 40081787109376 (পি-অ্যাডিক সংখ্যাগুলি বামে সীমাহীনভাবে যায় )। আপনি যে সংখ্যার সাথে লিঙ্ক করেছেন সেটি হ'ল 4 সংখ্যার প্রত্যয়।
ফাঁস নুন

ওহ ঠিক আছে, আপনাকে ধন্যবাদ, আমি পি-অ্যাডিক সংখ্যাগুলি সম্পর্কে জানতাম না
লিও

4

এলিস , 17 বাইট

/o.z/#Q/
@in.*.L\

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

কিছুই আউটপুট করে না (যা অর্ডিনাল মোডে মিথ্যা) বা Jabberwocky(যা খালি নয় এবং সুতরাং অর্ডিনাল মোডে সত্যবাদী; এটি ক্যানোনিকাল সত্যবাদী স্ট্রিংয়ের মানও)।

ব্যাখ্যা

/.../#./
....*..\

লিনিয়ার অর্ডিনাল মোড প্রোগ্রামগুলির জন্য এটি সাধারণ কাঠামোর একটি সামান্য পরিবর্তন। /মাঝখানে মাঝখানে অঙ্কবাচক মোডে একটি একক অপারেটর আছে ব্যবহৃত হয় ( *) এবং তারপর আমরা প্রয়োজন #উপায় পিছনে পূরণবাচক মোডে এটি এড়িয়ে যেতে। লিনিয়ার প্রোগ্রামটি তখন:

i..*.QLzno@

এর মাধ্যমে চলুন:

i    Read all input as a string and push it to the stack.
..   Make two copies.
*    This is run in Cardinal mode, so it implicitly converts the top two
     copies to their integer value and multiplies them to compute the square.
.    Implicitly convert the square back to a string and make a copy of it.
Q    Reverse the stack to bring the input on top of the two copies of its square.
L    Shortest common supersequence. This pops the input and the square from
     the top of the stack and pushes the shortest string which begins with
     the square and ends with the input. Iff the square already ends with the
     input, this gives us the square, otherwise it gives us some longer string.
z    Drop. Pop the SCS and the square. If the square contains the SCS (which
     would mean they're equal), this removes everything up to the SCS from
     the square. In other words, if the SCS computation left the square
     unchanged, this gives us an empty string. Otherwise, it gives us back
     the square.
n    Logical not. Turns the empty string into "Jabberwocky" and everything
     else into an empty string.
o    Print the result.
@    Terminate the program.


4

পাইথন 2, 37 33 30 29 বাইট

lambda n:n*~-n%10**len(`n`)<1

@ লিক্যুনকে ধন্যবাদ 4 টি বাইট সংরক্ষণ করা হয়েছে ইনপুটটি 10 ​​^ 12 এর চেয়ে কম বলে মনে করে 3 বাইট সংরক্ষণ করা হয়েছে তাই n"এল" দিয়ে শেষ হয় না। @ ডেনিসকে 1 বাইট ধন্যবাদ সংরক্ষণ করা হয়েছে কারণ আমি প্রথম স্থানে মিসক্ট করেছি।

এটি অনলাইন চেষ্টা করুন! (টিআইও লিঙ্ক সৌজন্যে @ ডেনিস)


3

সি (জিসিসি) , 57 বাইট

f(__int128 n){n=n*n%(long)pow(10,printf("%u",n))==n;}

@ Betseg এর উত্তরের ভিত্তিতে, এটি এমন একটি ফাংশন যা 1 বা 0 প্রদান করে । এটি STDOUT এ জঞ্জাল আউটপুট উত্পাদন করে যা ডিফল্টরূপে অনুমোদিত

স্কোরটিতে +4 বাইট রয়েছে সংকলক পতাকার জন্য-lm

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



3

সি # (.নেট কোর) , 47 বাইট

n=>$"{BigInteger.Multiply(n,n)}".EndsWith(n+"")

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


পরিবর্তন $"{n}"করা n+""কি সম্ভব নয় ? এছাড়াও, আপনি সম্ভবত একটি ট্রিআইটঅনলাইন-লিঙ্ক যুক্ত করতে পারেন ? ওহ, এবং এটি একটি স্নিপেট, কোনও ফাংশন / প্রোগ্রাম নয়। সুতরাং আপনি n=>এটি সামনে যোগ করা উচিত ।
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুজসেন হয়ে গেছে! আরও কি আরও সহজ করা সম্ভব? টিআইএল আপনি একটি স্ট্রিং ব্যবহার করে একটি int রূপান্তর করতে পারেন n+""। ধন্যবাদ!
কাকরোট

bool f(long n)সি #, জাভা ইত্যাদিতে ল্যাম্বডা উত্তরের জন্য আপনার কাছে বা পিছনের আধা-কোলনের দরকার নেই কেবল n=>$"{BigInteger.Multiply(n,n)}".EndsWith(n+"")যথেষ্ট। :) এবং আমি প্রায় ভুলে গেছি: পিপিসিজিতে আপনাকে স্বাগতম!
কেভিন ক্রুজসসেন

@ কেভিন ক্রুজসেন আপনাকে ধন্যবাদ!
কাকরোট

আপনাকে স্বাগতম! :) ওহ, এবং এখানে আপনার টিআইও-লিঙ্ক রূপান্তরকারীটি কেবলমাত্রn=> ব্যবহার করে একটি ব্যবহার করে System.Func
কেভিন ক্রুজসসেন

3

কাঠকয়লা , 12 11 বাইট

I¬⌕⮌IXIθ²⮌θ

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

রিটার্নস Falseযেমন falseyএবং Trueহিসাবে truthy

  • কেবলমাত্র ASCII- কে 1 বাইট সংরক্ষিত! (আমি কীভাবে এই Powerফাংশনটি মিস করতে পারি ?)

এই আয় 0জন্য 10, 100... 1জন্য 50, 60... 2জন্য 760, 3792...
নিল

@ নীল এখনই স্থির, ধন্যবাদ!
চার্লি

2
আমি ভেবেছিলাম চারকোল কেবলমাত্র ASCII শিল্পের জন্য ভাল। ಠ_ಠ
সম্পূর্ণমানবিক


@ টোটালিহুমান এটি এখনও রয়েছে, <6 বাইট সমাধান সহ সমস্ত সাধারণ গল্ফল্যাংগুলি দেখুন
এএসসিআই-

2

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

n=>`${n*n}`.endsWith(n)

চেষ্টা করে দেখুন

এই স্নিপেটটি আমার ফোনে লিখেছেন, সুতরাং দয়া করে এটি সঠিকভাবে কাজ না করে থাকলে সম্পাদনা করুন।

f=
n=>`${n*n}`.endsWith(n)
oninput=_=>o.innerText=f(+i.value);o.innerText=f(i.value=1)
<input id=i type=number><pre id=o>


নির্ভুলতার কারণে এটি 212890625 এর জন্য ব্যর্থ হয় ।
ডেনিস

এটি নির্দেশ করার জন্য ধন্যবাদ, @ ডেনিস; এটি একটি ধূমপানের বিরতিতে ছিল তখনই আমি দ্রুত (পরীক্ষামূলকভাবে) পরীক্ষার কেসগুলি পরীক্ষা করেছিলাম। যথাযথ ত্রুটিগুলির বিষয়ে স্পষ্টতা জিজ্ঞাসা করবে এবং আমি প্রয়োজনে যদি কোনও কম্পিউটারে ফিরে আসি তবে মুছুন।
শেগি




2

আর, 28 বাইট

pryr::f(x^2%%10^nchar(x)==x)

একটি ফাংশন তৈরি করে:

function (x) 
x^2%%10^nchar(x) == x

এর সাথে মডুলাস নেয় x^2যে আমরা শেষ সংখ্যাগুলি রাখি, যার সাথে আমরা তুলনা করি x





1

পিএইচপি , 41 বাইট

<?=preg_match("#$argn$#",bcpow($argn,2));

পিএইচপি স্যান্ডবক্স অনলাইন

পিএইচপি , 42 বাইট

Regex ছাড়া

<?=strtr(bcpow($argn,2),[$argn=>X])[-1]>A;

পিএইচপি , 44 বাইট

লেভেনস্টেইন দূরত্ব ব্যবহার করুন

<?=!levenshtein($argn,bcpow($argn,2),0,1,1);


1

ব্যাচ, 122 বাইট

@set/an=%1,t=f=1
:l
@set/at+=t,f*=5,n/=10
@if %n% gtr 0 goto l
@cmd/cset/a"(!(%1%%t)|!(~-%1%%t))&(!(%1%%f)|!(~-%1%%f))

অ্যালগরিদম কেবল ভেরিয়েবলের জন্য ব্যবহৃত পূর্ণসংখ্যার ধরণের দ্বারা সীমাবদ্ধ। ব্যাচের ক্ষেত্রে, এটি 32-বিট স্বাক্ষরিত পূর্ণসংখ্যা, তাই সর্বাধিক 2147483647 n (এন 0 বা 1 এর বাদে এন এবং এন -1 এর প্রতিটি ফ্যাক্টর থাকবে))


1

> <> , 30 বাইট

1&0}\{n;
:&(?\:::*&a*:&%={+}:&

এটি অনলাইনে চেষ্টা করে দেখুন , বা এটি মাছের খেলার মাঠে দেখুন !

এক্সপুট নম্বর এক্স ধরে নিবে স্ট্যাক ইতিমধ্যে।

ব্যাখ্যা: মাছটি 10 এর শক্তি বাড়িয়ে x 2 এর ভাগফল নিয়ে যায় এবং এটি x এর সমান কতগুণ গণনা করে । যখন 10 এর পাওয়ার এক্স এর চেয়ে বড় হয় , তখন এটি গণনা এবং বিরামগুলি মুদ্রণ করে। এক্স অটোমোরফিক হলে গণনাটি 1 হবে এবং তা না হলে 0 হবে।



1

পাইথ , 10 9 বাইট

-1 বাইট আইসএএচজি ধন্যবাদ ।

x_`^vz2_z

সংখ্যাটি স্বয়ংক্রিয়ভাবে যখন 0 আসে তবে তা না থাকলে অন্য কিছু is

এটি অনলাইন পরীক্ষা!

ব্যাখ্যা

x_`^vz2_z

   ^vz2      # Evaluate the input to a number, compute the square
  `          # Convert the squared number to a string
 _           # Reverse it
x      _z    # Find the index of the first occurrence of the reversed input in the reversed square. That's basically equivalent of doing an endswith() in Python
             # Implicit input of the index. If 0, then the reversed square starts with the reversed input

1
`স্ট্রিং রূপান্তরিত হয়।
isaacg



0

Clojure, 59 বাইট

#(apply = true(map =(reverse(str %))(reverse(str(* % %)))))

এটি অত্যধিক ভারবস বলে মনে হচ্ছে।


শুধু সাথে যেতে হবে না কেন #(.endsWith(str(* % %))(str %))?
ক্লিফ্রুট

ওহ সত্য, জাভা বিল্ট-ইনগুলি ভুলে যাওয়া এত সহজ।
নিকোনিহার

0

এমএটিএল , 10 বাইট

UUVG36hXXn

আপ সংখ্যার জন্য এই কাজ floor(sqrt(2^53))অনুযায়ী, doubleস্পষ্টতা সীমাবদ্ধতা।

আউটপুট একটি ইতিবাচক সংখ্যা (যা সত্যবাদী) যদি অটোমোরফিক হয়, বা খালি (যা মিথ্যা) যদি না হয়।

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

ব্যাখ্যা

মজার বিষয় এই উত্তরটি দুটি ওভারলোড হওয়া সংস্করণ ব্যবহার করে U: স্ট্রিং ইনপুট সহ এটি একটি সংখ্যা হিসাবে মূল্যায়ণ করে এবং সংখ্যার ইনপুট সহ এটি স্কোয়ারকে গণনা করে।

U      % Implicitly input a string. Evaluate as a number
U      % Square of number
V      % Convert number to string representation
G      % Push input string again
36h    % Post-pend '$'
XX     % Regexp match. Gives cell array of matching substrings.
n      % Number of elements. Implicitly display
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.