এটি হিপ স্কয়ার হতে হবে


44

চ্যালেঞ্জ

সুতরাং, হুম, মনে হয়, আমাদের কাছে প্রচুর চ্যালেঞ্জ রয়েছে যা বর্গ সংখ্যা বা অন্যান্য আকারের সংখ্যার সাথে কাজ করে, আমাদের কাছে এমনটি নেই যা কেবল জিজ্ঞাসা করে:

একটি পূর্ণসংখ্যা দেওয়া n(যেখানে n>=0) ইনপুট হিসাবে একটি যথার্থ nবর্গক্ষেত্র হিসাবে সত্যবাদী মান দেয় বা যদি না হয় তবে একটি মিথ্যা মান দেয়।


বিধি

  • আপনি যে কোনও যুক্তিসঙ্গত, সুবিধাজনক উপায়ে ইনপুট নিতে পারবেন যতক্ষণ না এটি স্ট্যান্ডার্ড আই / ও বিধি দ্বারা অনুমোদিত
  • আপনার নির্বাচিত ভাষা নেটিভভাবে যা পরিচালনা করতে পারে তার চেয়ে বড় ইনপুটগুলি হ্যান্ডেল করার দরকার নেই বা যা ভাসমান বিন্দুতে ভুল হতে পারে।
  • আউটপুট দুটি ধারাবাহিক সত্য / মিথ্যা মানগুলির মধ্যে একটি হওয়া উচিত (উদাহরণস্বরূপ, trueবা false, 1বা 0) - সত্য যদি ইনপুটটি একটি নিখুঁত বর্গ হয়, তা না হলে মিথ্যা।
  • এটি তাই সর্বনিম্ন বাইট গণনা জয়।

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

Input:  0
Output: true

Input:  1
Output: true

Input:  64
Output: true

Input:  88
Output: false

Input:  2147483647
Output: false

@ নীল আমি আমার ভুল বুঝতে পেরেছি আমি যে প্রস্তাবনা প্রত্যাহার এবং এর পরিবর্তে অফার 18014398509481982( 2**54-2), যা হয় একটি ডবল সঙ্গে representable এবং উত্তরগুলি ব্যবহার ঘটায় sqrtব্যর্থ।
মেগো

@ মেগো আমি সম্ভবত ভুল বলছি বা আপনি যা বলছেন তা ভুল বোঝাবুঝি করছি তবে আমি নিশ্চিত 2**54-2যে কমপক্ষে জাভাস্ক্রিপ্টে 18014398509481982 > 9007199254740991
টম

@ মেগো আমি মনে করি সীমিতকরণের মান 9007199515875288 It's
নীল

@ টম 2**54-2একটি জেএস কনসোলে টাইপ করুন এবং আপনি যা পান তার সাথে তুলনা করুন 18014398509481982(সঠিক মান)। জেএস সঠিক মান আউটপুট করে, তাই 2**54-2ডাবল দিয়ে প্রতিনিধিত্বযোগ্য। যদি এটি এখনও আপনাকে বোঝায় না, বাইনারি ডেটা নিন 0100001101001111111111111111111111111111111111111111111111111111, এটি একটি আইইইই -754 ডাবল-স্পষ্টতা ভাসা হিসাবে ব্যাখ্যা করুন এবং দেখুন আপনি কী মান পাবেন।
মেগো

3
দুঃখিত, ছেলেরা, মধ্যাহ্নভোজনে সরে এসেছি ... ভাল, যে বাড়িয়েছে! এবং সেখানে আমি ভাবলাম এটি একটি দুর্দান্ত, সাধারণ চ্যালেঞ্জ হবে! এমন কোনও বিধি যুক্ত করবেন যা আপনার নির্বাচিত ভাষায় ভাসমান পয়েন্টের ভুলগুলিতে বাড়ে এমন ইনপুটগুলি পরিচালনা করার দরকার নেই?
শেগি

উত্তর:


27

নিম , 2 বাইট

q𝕚

ব্যাখ্যা:

q      Push an infinite list of squares
 𝕚     Is the input in that list?

আমি যখন 'অসীম' বলি তখন পর্যন্ত আমি যতক্ষণ না দীর্ঘস্থায়ী (2 ^ 63-1) সর্বাধিক মান হিট করি ততক্ষণ আমার অর্থ হয়। তবে, নিম (তত ধীরে ধীরে) তাত্ত্বিকভাবে অসীম আকারে বড় বিগআইন্টিজারে স্থানান্তরিত হচ্ছেন।

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


মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
ডেনিস

মজাদার. সুতরাং, এই তালিকাটি প্রাক-বাফার করে নাকি এটি এমন কোনও জেনারেটর / পুনরুক্তিকারী যা শেষ না হওয়া অবধি ইনপুটটির অস্তিত্বের জন্য চেক করতে থাকে?
প্যাট্রিক রবার্টস

@ পেট্রিকরোবার্স কি আমরা আড্ডায় কথা বলতে পারি?
Okx

অবশ্যই, আমাকে শুধু উনিশতম বাইটে পিং করুন । আমি মাঝে মধ্যে সেখানে আছি।
প্যাট্রিক রবার্টস

ঠিক আছে, এটি হ'ল ... সত্যিই কার্যকর
ক্রোমিয়াম


8

টিআই-বেসিক, 4 বাইট

not(fPart(√(Ans

বর্গমূলটি কোনও ননজারো ভগ্নাংশ / দশমিক অংশ সন্ধান করে এটি পরীক্ষা করে।


আপনি কি একটি টিআইও (বা সমমান) যুক্ত করতে পারেন?
শেগি

@ শেগি @ আমি মনে করি যে এর কোনও আছে। টিআই-বেসিক মালিকানাধীন এবং এটি কেবল টিআই-এর ক্যালকুলেটরগুলিতে এবং একটি ক্যালকুলেটর থেকে রম চালিত অনুকরণকারীগুলিতে চলবে, তাই আপনি যদি ক্যালকুলেটরটির মালিক না হন তবে আপনি আইনত টিআই-বেসিক ব্যবহার করতে পারবেন না।
অ্যাডম

1
@ শেগি আপনার যদি কোনও রম থাকে তবে অনলাইনে চেষ্টা করে দেখতে আপনি কোনও এমুলেটর ব্যবহার করতে পারেন (আমার পছন্দটি জাস্টিফাইযুক্ত)।
টিমটেক

8

সি #, 27 বাইট

n=>System.Math.Sqrt(n)%1==0

এটি করার আরও একটি সঠিক / সঠিক উপায় হ'ল :

n=>System.Math.Sqrt(n)%1<=double.Epsilon*100

ডাবল।এপসিলন এই ধরণের চেকের জন্য অকেজো । tl; dr: সংখ্যার সাথে> 2 তুলনা করার সময় ডাবল।এপসিলন মূলত শূন্যের সমান। 100 দ্বারা গুণ করলে কেবল এটি কিছুটা বিলম্বিত হবে।
রবার্ট ফ্রেজার

@ রবার্টফ্রেজার আমি কেবল লিঙ্কযুক্ত এসও পোস্ট দিয়ে গিয়েছিলাম এবং এটিতে খুব বেশি পড়ি না। যে কোনও উপায়ে এটি কেবল উচ্চ সংখ্যায় কার্যকর না হওয়া অব্যর্থ নয়।
TheLethalCoder

...<int>==0হয় ...!<int>আমি মনে করি
স্ট্যান Strum

@ স্ট্যানস্ট্রুম সি # তে নেই
TheLethalCoder

7

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

n=>!(n**.5%1)

N এর বর্গমূল সম্পূর্ণ সংখ্যা হলে সত্যটি প্রত্যাশায় ফিরে আসে।

স্নিপেট:

f=
n=>!(n**.5%1)

console.log(f(0));
console.log(f(1));
console.log(f(2));
console.log(f(4));
console.log(f(8));
console.log(f(16));
console.log(f(88));
console.log(f(2147483647));


7

ডিসি, 9

0?dvd*-^p

সত্যের জন্য আউটপুট 1 এবং ভুয়া জন্য 0।

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

0            # Push zero.  Stack: [ 0 ]
 ?           # Push input.  Stack: [ n, 0 ]
  dv         # duplicate and take integer square root.  Stack: [ ⌊√n⌋, n, 0 ]
    d        # duplicate.  Stack: [ ⌊√n⌋, ⌊√n⌋, n, 0 ]
     *       # multiply.  Stack: [ ⌊√n⌋², n, 0 ]
      -      # take difference. Stack: [ n-⌊√n⌋², 0 ]
       ^     # 0 to power of the result.  Stack: [ 0^(n-⌊√n⌋²) ]
        p    # print.

নোট dcএর ^exponentiation কমান্ড 0 দেয় 0 = 1 এবং 0 এন = 0, যেখানে n> 0।


সুন্দর! এই dcজাতীয় দক্ষ ফ্যাশন ব্যবহার করার জন্য +1
ওয়াইল্ডকার্ড

6

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

.+
$*
(^1?|11\1)+$

এটি অনলাইন চেষ্টা করুন! @ মার্টিনএেন্ডারের উত্তর থেকে নির্লজ্জভাবে অভিযোজিত এই নম্বরটি কি ত্রিভুজাকার? তবে বেস রূপান্তর সহ 6 বাইট ব্যয়ে অন্তর্ভুক্ত।

দ্রষ্টব্য যে এই সংখ্যাটি কি ত্রিভুজাকার? ত্রিভুজাকার সংখ্যা হিসাবে শূন্যকে সমর্থন করার মতো কিছু অনভিজ্ঞ কারণ নয়, সুতরাং অভিযোজনের একটি অংশটি ?লিডিং 1টিকে alচ্ছিক করতে একটি যুক্ত করা ছিল , যাতে গ্রুপটি খালি স্ট্রিংয়ের সাথে মেলে, এবং তাই শূন্য ইনপুট। যাইহোক, এখন খালি স্ট্রিংয়ের সাথে মিল রেখে +অপারেটর পুনরাবৃত্তি থামিয়ে দেয়, এমন অসীম লুপ এড়ানোর জন্য ঘটে যা যদি লোভের সাথে খালি স্ট্রিংয়ের সাথে মিল রাখে (তবে সর্বোপরি ^1?অবশ্যই মিল থাকবে)। এর অর্থ এটি গ্রুপের অন্য বিকল্পগুলির সাথে মিলানোর চেষ্টাও করে না, এভাবে 2, 6, 12 এর ম্যাচ এড়িয়ে চলে @ @ মার্টিনইেন্ডার উল্লেখ করেছেন যে, খালি স্ট্রিংয়ের সাথে ম্যাচ করার সময় এটি এড়ানোর সহজ উপায় হ'ল শুরুতে ম্যাচ নোঙ্গর যখন একই বাইট গণনা জন্য গ্রুপ ঐচ্ছিক উপার্জন: ^(^1|11\1)*$


আপনার ব্যাখ্যা উন্মুখ কেন এই মিলছে না 2, 6বা ফর্মের অন্যান্য সংখ্যার n^2-n। ;) (একই বাইট গণনার জন্য সেই ব্যাখ্যা এড়ানোর এক উপায় হবে ^(^1|11\1)*$))
মার্টিন ইন্ডার

@ মার্টিনএন্ডার একই কারণ আপনি ব্যবহার করতে পারেন নি (^|1\1)+$, আমি মনে করি?
নীল

হ্যাঁ, ওটা ঠিক আছে. কেবল ভেবেছি এটি উল্লেখ করা ভালই হবে কারণ বেশিরভাগ লোক সম্ভবত ত্রিভুজাকৃতির উত্তর সম্পর্কে আমার মন্তব্যটি পড়েনি (এবং এই ক্ষেত্রে সমাধানটি সঠিক কেন এটি আসলে প্রাসঙ্গিক, ঠিক কেন এটি আরও গল্ফ করা যায় না তার বিপরীতে )।
মার্টিন ইন্ডার

রেকর্ডের জন্য, +লুপিং বন্ধ করা হবে যদি আর কোনও খালি বিকল্প না থাকে, যেমন এর ক্ষেত্রে ((?(1)11\1|1?))+। একবার খালি পুনরাবৃত্তি হওয়ার পরে, এটি খালি থাকুক বা না থাকুক না কেন, এটি আর কোনও চেষ্টা করবে না।
মার্টিন ইন্ডার

@ মার্টিনএেন্ডার আসলে আমার অর্থ "তত্ক্ষণাত মিলে যাওয়ার" পরিবর্তে "এখন ম্যাচ করা" " সংশোধন করা হয়েছে।
নিল


6

এমএটিএল , 5 4 বাইট

আমার এক বাইট দীর্ঘতর কোডটি দুটি বাইট দ্বারা কমিয়ে দেওয়ার জন্য লুইসকে ধন্যবাদ, এটিকে সবচেয়ে কম করে তৈরি করুন।

t:Um

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

ব্যাখ্যা:

         % Implicit input
t        % Duplicate it
 :       % Range from 1 to input value
  U      % Square the range, to get 1 4 9 ... 
   m     % ismember, Checks if the input is a member of the range of perfect squares

পুরানো উত্তর:

X^1\~

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

        % Implicit input
X^      % Square root of input
  1\    % Modulus 1. All perfect squares will have 0, the rest will have decimal value
     ~  % Negate, so the 0 becomes 1, and the decimal values become 0

@ মেগো আমি একমত নই এমএটিএল এমনকি করতে পারে নাmod(2**127-, 1000) । যদি না চার গত সংখ্যার 0 হয় ....
Stewie গ্রিফিন

আপনি ব্যবহার করতে পারেন t:Um । ইনপুট জন্য যে কাজ করে আপ2^53 , ফ্লোটিং পয়েন্ট সীমিত স্পষ্টতা কারণে
লুইস Mendo

আমি এখন দেখছি যে এটি আপনার সম্পাদনার অনুরূপ, কেবল সামান্য খাটো :-)
লুইস মেন্ডো

ভাল লুকানো স্কয়ার কমান্ড! U: str2num / string to array / square। আমি জানতাম এখানে একটি বর্গক্ষেত্রের অনুষ্ঠান থাকতে হবে, তবে আমি এটি খুঁজে পেলাম না ...
স্টিভি গ্রিফিন

1
আঞ্চলিক উদ্দেশ্য: আমার দুটি সমাধান ছিল, একটি ছিল 5 বাইট, অন্যটি 6 বাইট। লুইস একটির সাথে দুটি বাইট ছড়িয়ে দিয়েছিলেন 6.. সুতরাং আমি তাকে ধন্যবাদ দিয়ে দুটি বাইট সংরক্ষণ করেছি, তবে আমি কেবল স্কোরের একটি বাইট সংরক্ষণ করেছি ...
স্টিভি গ্রিফিন

6

পাইথন 3 , 40 38 বাইট

2 বাইট সংরক্ষণের জন্য স্কুইডকে ধন্যবাদ!

lambda n:n in(i*i for i in range(n+1))

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

2147483647একটি যুক্তিসঙ্গত সময়ের জন্য উত্তর ফেরত দিতে খুব ধীর । (তবে মেমরি বাঁচাতে জেনারেটর ব্যবহার করে লিখিত, যেহেতু এটির কোনও বাইট খরচ হয় না))

পাইথন 2 এও কাজ করে, যদিও OverflowErrorআপনি rangeযদি বিশাল ইনপুট দিয়ে চেষ্টা করে থাকেন তবে একটি সম্ভাবনা রয়েছে । (একটি MemoryErrorএছাড়াও পাইথন 2 সম্ভবত হবে, এছাড়াও কারণে range।)



5

বড় সংখ্যক জন্য কাজ করে না, উদাহরণস্বরূপ4111817668062926054213257208
এমিগিনা

@ এমিগনা ওহ যেহেতু এটি দীর্ঘ হিসাবে বিবেচিত? আমি ভেবেছিলাম যে 05AB1E পাইথন 3 ব্যবহার করে
এরিক দ্য আউটগল্ফার

বৃহত ইনপুটগুলির জন্য ব্যর্থ হয় (প্রদত্ত ইনপুটটি হ'ল 2**127-1একটি মার্সেন প্রাইম)।
মেগো

এটি অজগর 3 ব্যবহার করে The সমস্যাটি হল বর্গমূলটি বৃহত সংখ্যক জন্য গোলাকার ত্রুটি দেয়।
এমিগনা

@ এমিগনা ওহ ... আমি মনে করি আমাকে তখন অন্য কোনও উপায় বের করতে হবে, খুব শক্ত হওয়া উচিত নয়।
এরিক আউটগলফার

5

বড় ইনপুটগুলির জন্য ব্যর্থ হয়, যেমন 4111817668062926054213257208
L3viathan

25 বাইটে স্থির করা:lambda n:int(n**.5)**2==n
L3viathan

4
@ এল 3ভিয়াথন এটি (যে কোনও সমাধানের সাথে জড়িত রয়েছে sqrt) এমন মানগুলিতে ব্যর্থ হয় যা দ্বিগুণ, এর মতো সীমার বাইরে থাকে 2**4253-1
মেগো

@totallyhuman এর পরে %1অবশ্যই একটি ফ্লোট হ'ল <1তাই আপনার প্রস্তাবনা সমস্ত ইনপুটের ক্ষেত্রে সত্য হয়ে উঠবে। নোট যে n**.5একটি ভাসা।
ফাঁস নুন

5

সেজম্যাথ , 9 বাইট

is_square

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

অন্তর্নির্মিত ফাংশনটি টিনের উপরে যা বলে ঠিক তাই করে। যেহেতু সেজ প্রতীকী গণনা ব্যবহার করে, এটি আইপিইই -৫4৪ ভাসমানকে জর্জরিত করে এমন গণ্য নির্ভুলতা ত্রুটিমুক্ত।


5

জাপট , 3 বাইট

¬v1

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

কাজ জরিমানা মনে 2**54-2মধ্যে Japt ইন্টারপ্রেটার কিন্তু কিছু কারণে Tio ব্যর্থ হলে ...


বৃহত ইনপুটগুলির জন্য ব্যর্থতা (ইনপুটটি হ'ল 2**127-1, মরসেন প্রাইম)।
মেগো

@ মেগো, আদর্শ যে ভাষা সমাধানের পক্ষে সক্ষম তার চেয়ে বড় সংখ্যার হ্যান্ডেল করার দরকার নেই?
শেগি

@ শেগি জ্যাপটি জাভাস্ক্রিপ্টের উপর ভিত্তি করে তৈরি হয়েছে, যা ডাবল-স্পষ্টতা ফ্লোট ব্যবহার করে। 2**127-1একটি ডাবল পরিসীমা মধ্যে ভাল।
মেগো

2
@ মেগো জাভাস্ক্রিপ্টের জন্য সর্বাধিক নিরাপদ নয় 2**53-1?
টম

3
@ মেগো কিন্তু জাভাস্ক্রিপ্টের সংখ্যাগুলিতে কেবল 53 বিট নির্ভুলতা রয়েছে, তাই জেএস ঠিক একটি সংখ্যা হিসাবে মানটি উপস্থাপন করতে পারে না2**127-1 । এটি পেতে পারে নিকটতম 2**127
ইটিএইচ প্রডাকশনগুলি


5

প্রোলোগ (এসডাব্লুআই) , 27 বাইট

+N:-between(0,N,I),N=:=I*I.

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

ব্যাখ্যা

সমস্ত সংখ্যার বৃহত্তর বা সমান 0এবং এর চেয়ে কম বা সমান Nএবং অনুসন্ধান করে যে সংখ্যাটি বর্গাকার সমান কিনা তা পরীক্ষা করে N


1
@ ডিএলসক হয়ে গেছে !
0

5

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

°

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

আমি ব্যাখ্যা ব্যাখ্যা প্রয়োজন বলে মনে করি না। আমি এই চ্যালেঞ্জটি দেখার আগে একটি "ইজ পারফেক্ট স্কয়ার" অপারেটরটির প্রয়োজনীয়তা দেখেছি কারণ ভাষাটি গণিত সম্পর্কিত গল্ফ চ্যালেঞ্জগুলি পরিচালনা করতে ডিজাইন করা হয়েছে। 0 বা 1 প্রদান করে, কারণ ম্যাথগল্ফ বুলিয়ানগুলির প্রতিনিধিত্ব করতে পূর্ণসংখ্যার ব্যবহার করে।


4

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

<?=(-1)**$argn**.5<2;

বর্গমূলটি কোনও পূর্ণসংখ্যার সংখ্যা না হলে (-1)**$argn**.5হয় NAN


আমি কীভাবে এটি চালাব?
তিতাস

সঙ্গে @Titus -Fপতাকা এবং পাইপলাইন: echo 144 | php -F script.php
ব্যবহারকারী 63956

আহ আমি fচিঠিটি orgot। ধন্যবাদ।
তিতাস

4

রুবি, 25 বাইট

Math.sqrt(gets.to_i)%1==0

সম্ভবত একটি ছোট্ট উপায় আছে তবে আমি এটিই পেয়েছি।

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


পিপিসিজিতে আপনাকে স্বাগতম :) আপনি কি এর সাথে একটি টিআইও (বা সমতুল্য) যোগ করতে পারেন , দয়া করে?
শেগি

টিআইও যোগ করার জন্য ধন্যবাদ, এটি কোনও আউটপুট ফেরত বলে মনে হচ্ছে না।
শেগি

আমার খারাপ, আমি এটি আপডেট করেছি।
গ্রেগরি

নাহ, এখনও কাজ করছে না।
শেগি

3

সিজেম , 8 বাইট

ri_mQ2#=

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

ব্যাখ্যা

পূর্ণসংখ্যার বর্গমূল, বর্গক্ষেত্র, মূল সংখ্যার সাথে তুলনা করুন।


আমি অনুমান অনুযায়ী এই , আপনাকে প্রথমে 2 বাইট প্রয়োজন হবে না
ক্রোমিয়াম

এবং, বিকল্পভাবে, এই উত্তরটির ধারণাটি ব্যবহার করে আপনি এটি করতে পারেন mq1%0=যা 6 বাইটও রয়েছে
ক্রোমিয়াম

@ ক্রোমিয়াম ধন্যবাদ, তবে সেক্ষেত্রে আমার প্রয়োজন {... }কোডটি একটি ফাংশন হিসাবে তৈরি করা, একই বাইট গণনা
লুইস মেন্ডো

আসলে, আমি কোঁকড়া ধনুর্বন্ধনী যোগ করতে হবে বা না কিছুটা বিভ্রান্ত। আপনি যদি এগুলি যুক্ত না করেন তবে কিজ এটি আসলে একটি প্রোগ্রাম, যা অনুমোদিত।
ক্রোমিয়াম

@ ক্রোমিয়াম একটি প্রোগ্রামটির ইনপুট নেওয়া riদরকার, সেই ক্ষেত্রে এটি প্রয়োজন
লুইস মেন্ডো

3

গণিত, 13 বাইট

AtomQ@Sqrt@#&

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


বিল্ট ইন না? অদ্ভুত ....
TheLethalCoder

1
আপনি AtomQপরিবর্তে ব্যবহার করতে পারেন IntegerQ
মার্টিন ইন্ডার

1
অবশ্যই
নোংরা

1
আপনি এখনও ব্যবহার করতে পারেন @*
মার্টিন ইন্ডার

4
AtomQ@*Sqrtজন্য প্রতিশব্দ AtomQ@Sqrt@#&। উদাহরণস্বরূপ, জন্য AtomQ@*Sqrt@4আয় Trueএবং AtomQ@*Sqrt@5আয় False। (অগ্রাধিকারের কারণে, AtomQ@*Sqrt[4]সঠিকভাবে কাজ করে না, ফিরে আসছেন AtomQ@*2))
গ্রেগ মার্টিন


3

এডাব্লুকে , 27 + 2 বাইট

{x=int($0^0.5);$0=x*x==$1}1

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

নির্বিচারে নির্ভুলতার জন্য পতাকা +2ব্যবহারের জন্য বাইট যুক্ত করুন -M। আমি মূলত স্ট্রিং তুলনা ব্যবহার করেছি কারণ বৃহত সংখ্যক সমান তুলনা করেছে, যদিও তারা ছিল না, তবে sqrtএটিও অসম্পূর্ণ মানগুলি ফিরিয়েছিল। 2^127-2একটি নিখুঁত বর্গক্ষেত্র হওয়া উচিত নয়।


3

টি এসকিউএল, 38 বাইট

SELECT IIF(SQRT(a)LIKE'%.%',0,1)FROM t

বর্গমূলের দশমিক বিন্দুর সন্ধান করুন। IIFএমএস এসকিউএল-এর সাথে সুনির্দিষ্ট, পরীক্ষিত এবং এমএস এসকিউএল সার্ভার ২০১২-এ কাজ করে।

ইনপুট কলামে হয় একটি পূর্ব বিদ্যমান টেবিলের টি প্রতি আমাদের ইনপুট নিয়ম


3

ওহম , 2 বাইট

Ʋ

CP-437এনকোডিং ব্যবহার করে।

ব্যাখ্যা

অন্তর্নির্মিত ইনপুট -> অন্তর্নির্মিত নিখুঁত বর্গ -> অন্তর্ভুক্ত আউটপুট ...


3

জাভা 8, 20 বাইট

n->Math.sqrt(n)%1==0

ইনপুট একটি int

এখানে চেষ্টা করুন।


বিতর্কযোগ্য নয়: প্রশ্নটি পরিষ্কারভাবে বলেছে "প্রদত্ত একটি পূর্ণসংখ্যা n (যেখানে এন> = 0)"। সংক্ষিপ্ত উত্তরটি সবচেয়ে ভাল। সম্পাদনা: সংক্ষিপ্ত উত্তরটি প্রথম না হওয়া পর্যন্ত +1 করবে না: পি
অলিভিয়ার গ্রাগোয়ার

@ অলিভিয়ারগ্রোগোয়ার হুম, এটি দেখার জন্য এটি ভাল উপায়। তবে আপনি এখনও জানতেন না এটি একটি কিনাint , long, short। এবং যেখানে তারা পূর্ণসংখ্যার জন্য জিজ্ঞাসা করে তবে ইনপুট ফর্ম্যাটটি নমনীয়, আমি মাঝে মাঝে কিছু বাইট সংরক্ষণ করতে স্ট্রিং ইনপুট ব্যবহার করি। ব্যক্তিগতভাবে আমি মনে করি ব্যবহার n->করা ভাল, এবং আপনার টাইপটি কী তা ঠিক করা উচিত, তবে দৃশ্যত সকলেই এর সাথে একমত নন। অন্যদিকে, একটি জাভা 7 উত্তর ইতিহাস থেকে আসছে থেকে যাচ্ছে int c(int n){return ...;}করার (int n)->...চেয়ে তোলে আরো ইন্দ্রিয় n->...(যদিও আমি ব্যক্তিগতভাবে অবশ্যই খাটো যেহেতু দ্বিতীয় পছন্দ করা)।
কেভিন ক্রুইজসেন

2
@ অলিভিয়ারগ্রোওয়ের ঠিক আছে, আমি এটি পরিবর্তন করেছি। আলোচনা পড়ার পর এই উত্তর , আমি উপসংহার যে ইনপুট জানায় জাভা একটি পূর্ণসংখ্যা আসেন, ইনপুট জানায় চেয়ে কোনো পার্থক্য নেই CJam মধ্যে দুটি স্ট্রিং একটি তালিকা বা -এ স্ট্রিংগুলির একটি সেল অ্যারের
কেভিন ক্রুইজসেন


3

যোগ ++, , 24 13 11 বাইট যুক্ত করুন

+?
S
%1
N
O

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

আমি উপরের ক্লাঙ্কি ফাংশনটি সরিয়েছি এবং 11 টি বাইটগুলি সরিয়ে ফেলতে প্রশ্নের শরীরে এটি আবার লিখেছি।

প্রথম বিভাগটি ইতিমধ্যে নীচে ব্যাখ্যা করা হয়েছে, আসুন কেবল নতুন অংশটি কীভাবে কাজ করে তা খুঁজে বার করুন

S   Square root
%1  Modulo by 1. Produced 0 for integers and a decimal for floats
N   Logical NOT

পুরানো সংস্করণ, 24 বাইট

D,i,@,1@%!
+?
^.5
$i,x
O

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

উপরের ফাংশনটি ( D,i,@,1@%!) প্রোগ্রামটির মূল অংশ, সুতরাং আসুন আরও বিশদে যাওয়া যাক।

D,     Create a function...
  i,   ...called i...
  @,   ...that takes 1 argument (for this example, let's say 3.162 (root 10))
    1  push 1 to the stack; STACK = [1, 3.162]
    @  reverse the stack;   STACK = [3.162, 1]
    %  modulo the stack;    STACK = [0.162]
    !  logical NOT;         STACK = [False]

+?     Add the input to accumulator (x)
^.5    Square root (exponent by 0.5)
$i,x   Apply function i to x
O      Output the result

3

পাইথন 3 , 28 27 25 বাইট

  • 1 বাইটের জন্য @ এমদাহমৌনেকে ধন্যবাদ: মূলের সাথে মূল স্কোয়ারের ইনট তুলনা করুন
  • 2 বাইট সংরক্ষণ করা: ল্যাম্বদা সংক্ষিপ্ত
lambda x:int(x**.5)**2==x

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


1
f = ল্যাম্বদা x সম্পর্কে কী: x (x **। 5) ** 2 == এক্স 27 বাইটস
এমডাহ্মোনে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.