বিভাজ্যতা পরীক্ষা


39

কার্য

প্রদত্ত দুটি কঠোরভাবে ধনাত্মক পূর্ণসংখ্যা এন এবং ইনপুট হিসাবে নির্ধারণ কিনা এন হয় সমানভাবে বিভাজ্য দ্বারা , অর্থাত্, যদি অস্তিত্ব আছে একটি পূর্ণসংখ্যা কুই যেমন যে n = qd

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

আউটপুটটি সত্যবাদী বা মিথ্যা মান হওয়া উচিত ; সত্য যদি এন দ্বারা ডি দ্বারা বিভাজ্য হয় , এবং অন্যথায় মিথ্যা।

আপনার কোডটি কেবলমাত্র পূর্ণসংখ্যাগুলি পরিচালনা করতে হবে যা এটি স্বাক্ষরিত 8-বিট পূর্ণসংখ্যার জন্য কাজ করে যতক্ষণ না এটি স্থানীয়ভাবে উপস্থাপন করতে পারে। তবে আপনার অ্যালগরিদমকে নির্বিচারে বড় পূর্ণসংখ্যার জন্য কাজ করতে হবে।

আপনি যে কোনও প্রোগ্রামিং ভাষা ব্যবহার করতে পারেন তবে নোট করুন যে এই ফাঁকগুলি ডিফল্টরূপে নিষিদ্ধ করা হয়েছে।

এটি , তাই সংক্ষিপ্ততম বৈধ উত্তর - বাইটগুলিতে মাপা - জয়।

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

 n,  d    output

 1,  1    truthy
 2,  1    truthy
 6,  3    truthy
17, 17    truthy
22,  2    truthy
 1,  2    falsy
 2,  3    falsy
 2,  4    falsy
 3,  9    falsy
15, 16    falsy

লিডারবোর্ড

এই পোস্টের নীচে স্ট্যাক স্নিপেট উত্তরগুলি থেকে ক্যাটালগ তৈরি করে a) ভাষার প্রতি সংক্ষিপ্ত সমাধানের তালিকা হিসাবে এবং খ) সামগ্রিক লিডারবোর্ড হিসাবে।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

## Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

## Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

## Perl, 43 + 3 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও তৈরি করতে পারেন যা স্নিপেটে প্রদর্শিত হবে:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


এই কথোপকথন চ্যাটে সরানো হয়েছে ।
ডেনিস

উত্তর:


41

জেলি , 1 বাইট

এটি আমাকে গল্ফ করতে কয়েক ঘন্টা সময় নিয়েছে।

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


12
বাহ যে খুব জটিল!

নিবন্ধন করুন যেমনটি আমি বলেছিলাম, এটি আসতে আমার কয়েক ঘন্টা সময় লেগেছে। : পি
ডিজেএমসিমেহেম

29

মস্তিষ্ক-ফ্লাক , 72 70 64 62 58 46 বাইট

{({}[()]{(<()>)}{}<({}[()]<({}())>)>)}{}{{}}{}

লভ্যাংশ এবং বিভাজক (সেই ক্রমে) ইনপুট হিসাবে গ্রহণ করে এবং বিভাজক (সত্য) বা কিছুই মুদ্রণ করে। যেহেতু প্রতিটি স্ট্যাকের অন্তর্নিহিত, অসীম পরিমাণ শূন্য রয়েছে, খালি আউটপুটকে মিথ্যা মনে করা উচিত।

স্ট্যাক-ক্লিন না থাকাকালীন, এই সমাধানটি কেবল একটি একক স্ট্যাক ব্যবহার করে।

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

2 বাইট বন্ধ গল্ফ করার জন্য @ ওয়েট উইজার্ডকে ধন্যবাদ!

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

                INPUT: a (dividend), b (divisor)
                INITIAL STACK: n = a, d = b, r = 0
                               An infinite amount of zeroes follows.

{               While n is non-zero:
  (
    {}              Pop n from the stack.
    [()]            Yield -1.
    {               While the top of the stack (initially, d) is non-zero:
      (<()>)          Push 0.
    }
    {}              Pop 0. This will remove d from the stack if d = 0, leaving r
                    on top. We can think of this as performing the assignment
                    (d, r) = (r, d) if d = 0.
    <
      (
        {}              Pop d.
        [()]            Yield -1.
        <
          (
            {}              Pop r.
            ()              Yield 1.
          )               Push r + 1.
        >               Yield 0.
      )               Push d + (-1) + 0 = d - 1.
    >               Yield 0.
  )               Push n + (-1) + 0 + 0 + 0 = n - 1.
}               Each iteration decrements n, swaps d and r if d = 0, decrements d,
                and increments r.
                FINAL VALUES: n = 0
                              d = b - r
                              r = a % b if a % b > 0 else b
{}              Pop n.
{               While the top of the stack is non-zero:
  {}              Pop it.
}               This pops d and r if d > 0 (and, thus, a % b > 0) or noting at all.
{}              Pop d or a 0, leaving r if r = b and, thus, a % b = 0.

মডুলাস গণনা, 42 বাইট

উপরের সম্পূর্ণ প্রোগ্রামটির পরিবর্তে মডুলাস গণনা করার জন্য তুচ্ছ পদ্ধতিতে পরিবর্তন করা যেতে পারে।

{({}[()]<({}[()]<({}())>)>{(<()>)}{})}{}{}

আগের মতো, এই পদ্ধতিটি স্ট্যাক-ক্লিন নয়, তবে এটি কেবল একটি একক স্ট্যাক ব্যবহার করে। 0 এর একটি মডুলাস স্ট্যাকটি খালি ছেড়ে দেবে, যা প্রায় 0 ছাড়ার সমতুল্য ; প্রতিটি স্ট্যাকের মধ্যে অসীম শূন্য রয়েছে।

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

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

বিভাজক পরীক্ষক এবং মডুলাস ক্যালকুলেটরের দুটি লুপের তুলনা করুন।

{({}[()]{(<()>)}{}<({}[()]<({}())>)>)}
{({}[()]<({}[()]<({}())>)>{(<()>)}{})}

শুধু পার্থক্য অবস্থান হয় {(<()>)}{}, যা অদলবদল এবং যদি D = 0 । মডিউলাস গণনা করতে, আমরা d এবং হ্রাস r বৃদ্ধি করার পরে এই অদলবদল সম্পাদন করি ।

এই পরিবর্তনটি % b> 0 হলে ফলাফলকে প্রভাবিত করে না , তবে যদি % b = 0 হয় , তবে এটি (n, d, r) = (0, b, 0) - (n, d, r) এর পরিবর্তে = ছাড়বে (0, 0, খ) - স্ট্যাকের উপরে।

সুতরাং, মডুলাসটি পেতে, আমাদের কেবল পপ করতে হবে এন এবং ডি দিয়ে {}{}

স্ট্যাক-ক্লিন মডুলাস গণনা, 64 বাইট

42-বাইট মডুলাস অ্যালগরিদম স্ট্যাক-ক্লিন নয়, তাই এটি সমস্ত প্রোগ্রামের মতো ব্যবহার করা যায় না। সক্রিয় স্ট্যাক থেকে নিম্নলিখিত সংস্করণটি লভ্যাংশ এবং বিভাজক (সেই ক্রমে) পপ করে এবং বিনিময়ে মডিউলটিকে ধাক্কা দেয়। এর অন্য কোনও পার্শ্ব প্রতিক্রিয়া নেই।

({}(<()>)){({}[()]<(({}()[({})])){{}(<({}({}))>)}{}>)}({}{}<{}>)

এই সমাধানটি মূলত @ WheatWizard এর আগের 72-বাইট রেকর্ডের উপর ভিত্তি করে তবে এটি কখনও স্ট্যাকগুলি স্যুইচ করে 6 বাইট সংরক্ষণ করে না।

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

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

             INPUT: a (dividend), b (divisor)
             INITIAL STACK: n = a, b

(
  {}         Pop and yield n = a.
  (<()>)       Push d = 0.
)              Push n + 0 = n.
             STACK: n, d = 0, b
{(           While n in non-zero:
  {}           Pop and yield n.
  [()]         Yield -1.
  <
   ((
     {}         Pop and yield d.
     ()         Yield 1.
     [({})]     Pop b, push it back on the stack, and yield -b.
   ))         Push d + 1 + -b = d + 1 - b twice.
   {          While/if d + 1 - b is non-zero, i.e., if d < b - 1
     {}         Pop d + 1 - b (second copy).
     (<(
       {}         Pop d + 1 - b (first copy).
       ({})       Pop b and push it back on the stack.
     )>)        Push d + 1 - b + b = d + 1, then 0.
   }          If the loop wasn't skipped entirely, pushing 0 breaks out.
              If d < b - 1, it essentially performs the assignment d = d + 1.
              However, if d = b - 1, we get d = d + 1 - b = b - 1 + 1 - b = 0.
              In all cases, we wind up with d = (d + 1) % b.
   {}         Pop 0.
  >         Yield 0.
)}        Push n + -1 + 0 = n - 1. Break if n - 1 = 0.
          STACK: n = 0, d = a % b, b
(
  {}        Pop and yield n = 0.
  {}        Pop and d = a % b.
  <{}>      Pop b, but yield 0.
)         Push 0 + a % b + 0 = a % b.

20

x86_32 মেশিন কোড, 8 বাইট

08048550 <div7>:
 8048550:   99                      cdq   
 8048551:   f7 f9                   idiv   %ecx
 8048553:   85 d2                   test   %edx,%edx
 8048555:   0f 94 c0                sete   %al

এটি আমার প্রথম কোড গল্ফ উত্তর, সুতরাং আশা করি আমি সমস্ত নিয়ম অনুসরণ করছি।

এটি প্রথমে সিডিকিউকে এডিএক্স রেজিস্টারটি সাফ করার জন্য কল করে, তারপরে ইক্যেক্স রেজিস্টারে স্বাক্ষরিত বিভাগ সম্পাদন করে, যা বাকীটি এডএক্সে সংরক্ষণ করে। পরীক্ষার এডএক্স, এডিএক্স লাইন শূন্য পতাকা সেট করবে যদি এডএক্স শূন্য হয়, এবং সিড এডেক্স শূন্য না হলে মিথ্যের জন্য 0 রাখে এবং এডএক্স 0 হলে সত্যের জন্য 1 রাখে।

এই মাত্র কোড স্নিপেট যে বাইট গণনা অবদান কিন্তু পরীক্ষার জন্য হয় এখানে সি কোড আমি ইনলাইন সমাবেশ করা হয়েছে কারণ এটি আমি হ্যান্ডেল ইনপুট / আউটপুট এই পথ আরো সহজ সঙ্গে লিখেছেন।


2
পিপিসিজিতে স্বাগতম, প্রথম প্রথম উত্তর!
ফাঁস নুন

এটি একটি সম্পূর্ণ প্রোগ্রাম করা প্রয়োজন? আমি এই উত্তরটি বন্ধ করে আমার প্রতিক্রিয়াটি ফর্ম্যাট করছি । এবং তোমাকে ধন্যবাদ! আমি আরও কোড গল্ফিংয়ের জন্য সমাবেশ / মেশিন কোডে আরও ভাল হওয়ার প্রত্যাশা করছি!
ডেভি

1
সমাবেশে নির্দিষ্ট রেজিস্টারগুলিতে ইনপুট এবং আউটপুট ডিফল্টরূপে অনুমোদিত: ইনপুট , আউটপুট । এটি নিখুঁতভাবে গ্রহণযোগ্য জমা is পিপিসিজিতে আপনাকে স্বাগতম!
মেগো

ফ্যান্টাস্টিক! ধন্যবাদ!
ডেভি

17

হেক্সাগনি, 15, 13, 12 10 বাইট

সবার পছন্দের ষড়ভুজ ভিত্তিক ভাষা! : ডি

টিএল; ডিআর ম্যাজিক ব্যবহার করে বাইট গণনা হ্রাস করার ক্ষেত্রে অবরুদ্ধ বিন্যাসের সাহায্যে কাজ করে:

?{?..>1'%<.@!'/
?{?!1\.'%<@.>
?{?\!1@'%\!(
?{?!1\@'%<

@ মার্টিনএেন্ডারের লেআউট উইজার্ডির জন্য 2 বাইট সংরক্ষণ করা হয়েছে।

@ ফ্রাইআমএইজিজিম্যান আরও সৃজনশীলতার সাথে কোণগুলি ব্যবহার করে 1 বাইট সংরক্ষণ করেছে

@ মার্টিনএেন্ডার এবং @ ফ্রাইআমএইজিগম্যান উভয়েই 10 টি বাইট সলিউশন নিয়ে এসেছিল যা মিথ্যা মূল্যবোধের জন্য কোনও কিছু মুদ্রণ করে না।

আমার সমাধান (15):

ফরম্যাট না:

?{?..>1'%<.@!'/

বিন্যাসকৃত:

  ? { ?
 . . > 1
' % < . @
 ! ' / .
  . . .

@ মার্টিন ইন্ডারস সলিউশন (১৩):

ফরম্যাট না:

?{?!1\.'%<@.>

বিন্যাসকৃত:

  ? { ?
 ! 1 \ .
' % < @ .
 > . . .
  . . .

ব্যাখ্যা:

প্রথমত, আমরা ইনপুটটি পাই এবং মডিউলটি নিই।

  ? { ?
 . . . .
' % . . .
 . . . .
  . . .

তারপরে, এটি পরীক্ষা করে যে মডুলাস 0 বা না। যদি এটি হয়, আইপি 60 ডিগ্রি বামে পরিণত হয়, মিররটি বন্ধ করে দেয়, সেলকে 1 এ সেট করে এবং মুদ্রণ করে।

তারপরে, আইপিটি চতুর্থ সারিতে অবিরত থাকে। এটি যখন পৌঁছায় >, পরিবর্তে ডান দিকে ঘুরবে (কারণ ঘরের মান এখন 1)। এটি oob যায় এবং নীচে ডানদিকে ফিরে আসে NW শিরোনাম। আইপি হিট করে <, উপরের সারিটি বরাবর চলে যায় এবং @প্রোগ্রামটি বন্ধ করে ডান কোণায় ফিরে আসে ।

  . . .
 ! 1 \ .
. . < @ .
 > . . .
  . . .

যদি মডুলাসটি ধনাত্মক হয়ে যায়, আইপিটি 60 ডিগ্রি ডানদিকে ঘুরে যায়। একবার এটি নীচের ডান কোণে চলে গেলে, হেক্সাগনির মোড়ানোর নিয়মের কারণে এটি নীচে বাম প্রান্তে অবিরত থাকে। 'আইপি এটা 0 দিয়ে একটি কক্ষের যেতে না পুনঃব্যবহৃত করা হয়। আইপি এরপরে চতুর্থ সারির উপর দিয়ে ভ্রমণ করে, দ্বিতীয়টির চারপাশে মোড়ানো, মুদ্রণ হিট করে এবং এর মধ্যে প্রতিফলিত হয় <। বাকি পথটি @একই রকম।

  . . .
 ! . \ .
' . < @ .
 > . . .
  . . .

এটি কিছু গুরুতর জাদুঘর ry

@ ফ্রাইআম দ্য এজম্যান এর সমাধান (12):

ফরম্যাট না:

?{?\!1@'%\!(

বিন্যাসকৃত:

  ? { ?
 \ ! 1 @
' % \ ! (
 . . . .
  . . .

ব্যাখ্যা:

অন্যান্য সমাধানগুলির মতো এটিও ইনপুট পায় এবং মডুলাস নেয়।

  ? { ?
 . . . .
' % . . .
 . . . .
  . . .

তারপরে, আইপি নীচের কোণায় প্রতিবিম্বিত হয়। যদি মডুলাসটি ইতিবাচক হয় তবে এটি উপরের বাম প্রান্তে যায়। এর ?আর কোনও ইনপুট নেই, সুতরাং এটি সেলটি 0 এ সেট করে The !তারপরে 0 টি প্রিন্ট করে @এবং প্রোগ্রামটি সমাপ্ত করে।

  ? . .
 \ ! . @
. . \ . .
 . . . .
  . . .

যখন মডুলাস 0 হয় তখন জিনিসগুলি খুব জটিল হয় প্রথমত, এটি হ্রাস পায়, তারপরে 0 এ পুনরায় সেট করুন, তারপরে 1 এ সেট করুন, তারপরে মুদ্রিত হবে। তারপরে, 1 টি 0 এ কমে যায় that এর পরে, প্রোগ্রামটি শুরু করার মতো চলতে শুরু করে যতক্ষণ না এটি করার চেষ্টা করে 0%0। এটি এটিকে একটি নীরব ত্রুটি ফেলে দেয় এবং ছেড়ে দেয়।

  ? { ?
 . . 1 .
' % \ ! (
 . . . .
  . . .

আমি সত্যিই নীরব ত্রুটি কৌশলটি পছন্দ করি তবে একটি সহজ উপায় হ'ল প্রতিস্থাপন (করা /যাতে আইপি প্রথমবারের মধ্য দিয়ে যায় @তবে দ্বিতীয়টিতে প্রতিবিম্বিত হয় ।

সহযোগী সমাধান (10):

ফরম্যাট না:

?{?!1\@'%<

বিন্যাসকৃত:

  ? { ?
 ! 1 \ @
' % < . .
 . . . .
  . . .

এই প্রোগ্রামটি অন্য সমস্ত প্রোগ্রামগুলির মতোই শুরু হয়, ইনপুটটি পেয়ে এবং এটি পরিবর্তন করে।

যদি ইনপুট 0 হয়, আইপি হিট হলে বাম দিকে ঘুরবে <। এটিতে বিভক্ত হয়ে যায় 1!@, যা 1 এবং প্রস্থান করে।

  . . .
 ! 1 \ @
. . < . .
 . . . .
  . . .

যদি ইনপুটটি ইতিবাচক হয় তবে আইপি হিট করলে ডানদিকে ঘুরবে <। এটি কোণার মধ্য দিয়ে প্রস্থান করে এবং উপরের ডান প্রান্তটি দিয়ে প্রিন্ট না করে @ টিপুন।

  . . ?
 . . . @
. . < . .
 . . . .
  . . .

6
আমি মনে করি আপনার উত্তরটি আলাদাভাবে ফর্ম্যাট করা উচিত। একটি কোড কোড ব্লকে চারটি উত্তর থাকার ফলে এটি প্রদর্শিত হয় যেন আপনার বাইট গণনাটি ভুল।
mbomb007

17

মস্তিষ্ক-ফ্ল্যাক 102, 98, 96 বাইট

(({}<>))<>{({}[()])<>(({}[()])){{}(<({}[({})])>)}{}({}({}))<>}{}<>([{}]{}){<>(([()])())}({}{}())

Eww। স্থূল. আমি একটি ব্যাখ্যা পোস্ট করতে পারি, তবে আমি নিজেই এটি স্রেফ বুঝতে পারি। এই ভাষাটি আমার মস্তিষ্কে ব্যাথা দেয়।

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

গিথুব ব্যবহারকারী @ ওয়েটউইজার্ডকে একটি মডুলাসের উদাহরণ উপস্থিত করার জন্য ধন্যবাদ । আমি সম্ভবত নিজেকে খুঁজে বের করতে পারে না!

এছাড়াও, সংক্ষিপ্ত উত্তর এখানে

সম্ভবত ভুল ব্যাখ্যা:

(({}<>))                    #Push this element onto the other stack
<>                          #Move back to stack one.
{                           #While the top element is non-zero:
 ({}[()])                   #  Decrement the number on top
 <>                         #  Move to the other stack
 (({}[()]))                 #  Push the top element minus one twice
 {                          #  While the top element is non-zero:
  {}                        #    Pop the top element
  (<          >)            #    Push a zero
        ({})                #    Push the second from top element
       [    ]               #    Evalue this second from top element as negative
    ({}      )              #    And push that negative plus the top element
 }
 {}                         #  Pop the top element
 ({}({}))                   #  Push the top element plus the second from the top, AND push the second from top
 <>                         #  Switch stacks
}

{}                          #Pop the stack
<>                          #Switch to the other stack
([{}]{})                    #And push the top element minus the second element.

বাকিগুলি বেশ সোজা।

{              }            #While the top element is non-zero:
 <>                         #Move to the other stack
   (([()])  )               #Push a negative one
          ()                #AND push the previously pushed value + 1 (e.g. 0)

                 (      )   #Push:
                  {}{}      #The top two elements added together
                      ()    #Plus one

The rest is pretty straightforward.হ্যাঁ, মনে হচ্ছে এটির মতো।
এরিক দি আউটগল্ফার

24 টি বাইটস যদি আপনি প্রতিটি ব্রেইনফ্ল্যাক নির্দেশকে বাইট হিসাবে গণনা করেন।
noɥʇʎԀʎzɐɹƆ

12

জাভাস্ক্রিপ্ট (ES6) 17 12 11 বাইট

a=>b=>a%b<1
  • সম্পাদনা: 5 বাইট অপসারণ করা হয়েছে কারণ 'এ> 0' প্রত্যাশিত।
  • EDIT2: সরানো হয়েছে 1 বাইট ধন্যবাদ Downgoat

একটি বাইট সংরক্ষণ করার জন্য
কার্চিং

তাহলে আমি কীভাবে এটি সম্পাদন করব? আমি যখন জেএস কনসোলে d=a=>b=>a%b<1অনুসরণ করার চেষ্টা করি d(32,2)... আমি কেবল প্রতিক্রিয়া function b=>a%b<1
পাই

@ ওয়েল ওয়েস্ট এটি কারিঙ ব্যবহার করে, তাই আপনি টাইপ করতে পারেন d(32)(2)। যেহেতু d(32)দেয় function b=>a%b<1, তারপরে আপনাকে সেই ফাংশনটি আপনার bমান সহকারে কল করতে হবে
সাইয়েস

9

ভিম, 11 কীস্ট্রোক

C<C-r>=<C-r>"<C-Left>%<C-Right><1<cr>

এমন ভাষার পক্ষে খারাপ নয় যা কেবল স্ট্রিংগুলি পরিচালনা করে। : ডি


কি করে <C-Left>? এটি পরীক্ষা করতে পারে না কারণ এটি ম্যাক> _>
ডাউনগোটের

1
@ ডাউনগোট আপনি কি সিটিআরএল বা কমান্ড ব্যবহার করছেন? যে কোনও উপায়ে এটি "বি" এর সমতুল্য, এটি সন্নিবেশ মোডেও কাজ করে works
ডিজেএমসিএমহেম

পেডেন্টিক হতে, এটি এর Bচেয়ে সমান b(এবং Ctrl+ Rightএর সমতুল্য W) - পার্থক্যটি অ- শব্দযুক্ত অক্ষরের সাথে, তবে এই ক্ষেত্রে এটি ঠিক একই জিনিসটি করছে :) vimdoc.sourceforge.net/htmldoc/motion otion এইচটিএমএল # <সি-বাম >
খ্রিস্টান রোনডাউ

9

গণিত - 17 13 3 বাইট

এক টন বাইট সংরক্ষণের জন্য @ মার্টিনইেন্ডারকে ধন্যবাদ!


এটা কোন চরিত্র?
সাইয়েস

@ কিয়েস আমি এর ইউনিকোড-কোড (এই মুহুর্তে ফোনে) জানি না, তবে এটির জন্য একটি সংক্ষিপ্ত অপারেটর Divisible[]
ইয়তসি

@ কিয়েস আমি মনে করি এটি পাইপ প্রতীক, যা শিফট + ব্যাকস্ল্যাশ নামেও পরিচিত।
পাভেল

@ পাভেল যদি এটি পাইপের প্রতীক হয় তবে এটি তিন বাইট না।
সাইয়েস

@ কিউস এটি ইউ +২২২২ অক্ষর: ফাইল
ফর্ম্যাটটিনেফো

8

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

^(1+)\1* \1$

অ্যানারিতে স্পেস-বিভক্ত ইনপুট নেয়, 12 টি 4 দ্বারা বিভাজ্য 111111111111 1111কিনা তা পরীক্ষা করতে পছন্দ করে । মুদ্রণ 1 (সত্য) বা 0 (মিথ্যা)।

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

ফ্রাইআম দ্য এজিগম্যান দুটি বাইট সংরক্ষণ করেছেন। ওফস, যুক্তিগুলি সঠিক ক্রমে নিতে আমার উত্তরটি আবার লিখুন। (তারপরে ফ্রাই আমাকে মন্তব্যগুলিতে মারধর করুন re


অর্ডার ঠিক করার জন্য, এটি প্রয়োজনীয় হয়ে উঠলে আমি মনে করি ^(1+)\1* \1$কাজ করবে।
FryAmTheEggman

নতুন অনুমানের সাথে আমার ধারণা, বিপরীত ইনপুট অর্ডার আবার ঠিক আছে।
মার্টিন ইন্ডার

8

ব্যাচ, 20 বাইট

@cmd/cset/a!(%1%%%2)

1সাফল্যের ফলাফল , 0ব্যর্থতায়।


8

সি #, 27 13 12 বাইট

a=>b=>a%b<1;

বেনামে ল্যাম্বডাস চিহ্নিত করার জন্য টুকুকএক্সকে ধন্যবাদ গ্রহণযোগ্য। ডেভিড কনরাডকে কারী তৈরির দিকে আমাকে ইশারা করার জন্য ধন্যবাদ যা আমি জানতাম না এমন একটি জিনিস ছিল।

সংক্ষিপ্ত এবং মিষ্টি, যেহেতু আমরা কেবলমাত্র পূর্ণসংখ্যার সাথেই কাজ করছি যার <1পরিবর্তে আমরা ==0পুরো বাইট ব্যবহার না করে সংরক্ষণ করতে পারি ।


আমি নিশ্চিত নই, কিন্তু আমি মনে করি যে আপনি শুধুমাত্র একটি ল্যামডা ব্যবহার করতে পারেন: (a,b)=>a%b<1;। +1 টি।
ইয়াতসি

@ টুক্কাএক্স, ধন্যবাদ আমি নিশ্চিত ছিলাম না, মনে হচ্ছে এটি এতটা প্রতারণামূলক।
জাস্টিনএম - মনিকা

এটির জেএস সংস্করণটি এক বাইট দ্বারা এটি হ্রাস করার জন্য তরকারী ব্যবহার করেছিল এবং এটি সি # এর জন্যও কাজ করা উচিত: a=>b=>a%b<1;(দ্রষ্টব্য: আপনাকে অবশ্যই এটির f(a)(b)পরিবর্তে কল করতে হবে f(a,b))
ডেভিড কনরাড

1
@ ডেভিডকনরাদ যে খুব পরিষ্কার, আপনাকে ধন্যবাদ
জাস্টিনএম - মনিকা

7

ব্রেনফাক, 53 বাইট

বাইট হিসাবে ইনপুট নেয়, আউটপুট একটি বাইট মান 0x00বা 0x01। এটি ডিভমড অ্যালগরিদম এর পরে বুলিয়ান অবহেলা

,>,<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>,>[<+>,]+<[>-<-]>.

এটি অনলাইনে চেষ্টা করে দেখুন -+শেষের কাছাকাছিঅতিরিক্ত গোছা রয়েছেযাতে আপনি ASCII এ আউটপুট দেখতে পারেন।


বাইটস সংরক্ষণ করতে আপনি কি জিনিসটির "ডিভ" অংশটি সরাতে পারবেন?
ফুটো নুন

1
পছন্দ করুন এর অংশ অপসারণ আসলে এটি দীর্ঘতর করে দেয় কারণ আপনার আরও অস্থায়ী কক্ষ প্রয়োজন cells ভাগ না করে আপনি কোনও মডুলাস খুঁজে পাবেন না।
mbomb007

আমি, ধন্যবাদ।
লিকি নুন

@LeakyNun শুধু কতদিন তাকান বিভাগ অ্যালগরিদম হয়।
mbomb007

সম্ভবত সংক্ষিপ্তগুলি রয়েছে, তবে যদি তা হয় তবে কেউ এগুলিকে সন্ধান করতে বা পোস্ট করতে পারেনি।
mbomb007

7

ব্রেন-ফ্লাক , 88 86 বাইট tes

(<({}<>)>)<>{({}[()])<>(({}()[({})])){{}(<({}({}))>)}{}<>}<>(({}<{}>)){{}{}(<(())>)}{}

এটি ডঃ গ্রিন ডিম এবং আয়রন ম্যান ডিজেএমসিএমহেম এবং আমার দ্বারা রচিত মূল ব্রেইন-ফ্ল্যাক বিভাজ্যতা পরীক্ষা অ্যালগরিদমের একটি সংক্ষিপ্ত সংস্করণ ।

এটি কীভাবে কাজ করে তার একটি সংক্ষিপ্ত (ইশ) ব্যাখ্যা:

  ({}<>)        #Move the top of the stack to the other stack #Start Mod
(<      >)      #Push zero
<>              #Switch stacks
{               #While the top of the stack is not zero
 ({}[()])       #Subtract one from the top of the stack
 <>             #Switch stacks
   {}()         #Pop the top, add one and ...
       [({})]   #Subtract the second element on the stack
 ((          )) #Push twice
 {              #If the top is not zero
  {}            #Pop the duplicate
    ({}({}))    #Add the second element to the first
  (<        >)  #Push zero
 }              #End if
 {}             #Pop the zero
 <>             #Switch back
}               #End While
<>              #Switch to the other stack
 ({}<{}>)       #Remove the second value on the stack         #End Mod
(        )      #Duplicate the result of modulation
{               #If the top is not zero
 {}{}           #Pop the top two elements
 (<(())>)       #Push a one and a zero
}               #End if
{}              #Pop the zero

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


অনলাইন দোভাষীর লিঙ্ক?
ফাঁস নুন

চমৎকার কাজ! সাইটে স্বাগতম! আমি আশা করি আপনি এখানে মজা পাবেন। (আমার অবশ্যই আছে)
ডিজেএমসিএমহেম

প্রথম প্রথম উত্তর, পিপিসিগিতে আপনাকে স্বাগতম!
লিকি নুন

6

LOLCODE, 74 64 বাইট

HOW IZ I f YR a AN YR b
BOTH SAEM MOD OF a AN b AN 0
IF U SAY SO

এটি একটি সম্পূর্ণ প্রোগ্রাম, বর্তমান বাস্তবায়নের জন্য হাই এবং
কেটিএইচএক্সএক্সবিওয়াই

ঠিক আছে আমি চেষ্টা করব. এক সেকেন্ড…
ওল্ডবুনি 2800

না, এটি দুটি বাইট দীর্ঘ।
OldBunny2800

O RLY?আমি জানতাম না! পরিবর্তন।
ওল্ডবুনি 2800

BTW এখানে গল্ফিং টিপস।
লিকি নুন

6

সি, 60 বাইট

#include <stdio.h>
main(){int a,b;scanf("%d %d",&a,&b);a%b==0;}

1
কেন -1? আমাকে ব্যাখ্যা করুন
রোনরনার

3
এটা সম্ভব যে কেউ হ্রাস পায় না। এটি একটি সংক্ষিপ্ত উত্তর তাই এটি স্ব-মানের হিসাবে স্বতঃ পতাকাঙ্কিত হয়েছে এবং তারপরে আপনি এটি সম্পাদনা করেছেন। কিছু কারণে, এটি একটি স্বয়ংক্রিয় ডাউনভোট কাস্ট করে । এর জন্যে দুঃখিত. +1আমার থেকে. এছাড়াও, আমরা ফাংশনগুলিকে অনুমতি দিই, যাতে আপনি এটিকে সহজেই সংক্ষিপ্ত করতে int f(a,b){return !(a%b);}বা এমনকি আরও ছোট করে তুলতে পারেন ।
ডিজেএমসিএমহেম

3
না, আমার বক্তব্যটি এটি একটি সম্পূর্ণ প্রোগ্রাম হতে হবে না। পরিবর্তে আপনি কেবল একটি ফাংশন জমা দিতে পারেন। int f(a,b){return!(a%b);}25 বাইট হয় এবং আপনি যদি সঠিক সংকলক ব্যবহার করেন তবে আপনি f(a,b){return!(a%b);}21 বাইটের জন্যও করতে পারেন ।
ডিজেএমসিএমহেম

3
এমনকি সংক্ষিপ্ত ফাংশন জমা: #define f(a,b)!(a%b)( আদর্শ লিঙ্ক )
মেগো

2
আপনাকে কেবল কোনও স্নিপেট নয়, একটি ক্রিয়াকলাপ বা একটি প্রোগ্রাম নির্ধারণ করতে হবে।
ফুটো নুন


5

আর, 22 20 বাইট

a=scan();!a[1]%%a[2]

সাধারণত, ইনপুট থেকে দুটি নম্বর পড়ে যা খালি রেখার দ্বারা শেষ হয়।

আপডেট: জার্কো ডাবডেলডামকে 2 বাইট ছাঁটাই করার জন্য ধন্যবাদ (তার সম্পাদনা প্রত্যাখ্যান করা সত্ত্বেও, এটি খুব সহায়ক ছিল!)।


5

জাভা 8, 11 বাইট

a->b->a%b<1

কী হ্যাক, এর জেএস এবং সি # সংস্করণ রয়েছে, জাভা সংস্করণও কেন নয়?

ব্যবহার:

import java.util.function.Function;

public class Program {
    public static void main(String[] args) {
        System.out.printf("%d, %d %b%n", 9, 3, divides(9, 3, a->b->a%b<1));
        System.out.printf("%d, %d %b%n", 3, 9, divides(3, 9, a->b->a%b<1));
    }

    public static boolean divides(int a, int b,
            Function<Integer, Function<Integer, Boolean>> f) {
        return f.apply(a).apply(b);
    }
}

a->b->a%b<1এটি একটি সিনট্যাক্স ত্রুটি উত্থাপন করে, তাই না?
দোরুকাহান মনিকে

2
না, এটি বৈধ জাভা 8
ডেভিড কনরাড

কখনও কখনও
মেগা ম্যান

হ্যাঁ, আমি যোগ করতে চাই যে এটি কেবল জাভা 8;)।
ম্যাজিক অক্টোপাস আরন

জাভা 8 এর সাথে আমাদের কেবল ল্যাম্বডা এক্সপ্রেশন বাইটগুলি গণনা করতে হবে পুরো ক্লাস এবং ফাংশন বয়লারপ্লেট নয়, দুর্দান্ত!
সিকোরস্কি

4

পাইথন, 16 বাইট

lambda D,d:D%d<1

1
মনে রাখবেন যে নেতিবাচক পূর্ণসংখ্যার অনুমতি দেওয়া হলে এটি কাজ করবে না। ভাগ্যক্রমে, ইনপুটগুলি কঠোরভাবে ইতিবাচক।
TLW

আমি করেছি lambda a,b:1.*a/b==a/b, কিন্তু বেশ মুগ্ধ হয়েছিল। এটি কোডের একটি জটিল অংশ ...
এরিক দি আউটগল্ফার






3

মারিওল্যাং, 121 109 107 বাইট

মার্টিন ইেন্ডারকে 14 বাইট সংরক্ষণ করা হয়েছে

;>(-)-)+(([!)
)"=========#[
; +(![-)< )<!+
  ==#==="  "#:
>!< >(+ !![(<
=#"="===##=:"
  !      <
  #======"

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

ব্যাখ্যা

অ্যালগরিদম কেবল বিয়োগ রাখা dথেকে nযদি আপনি এটি সময়ের একটি পূর্ণসংখ্যা সংখ্যা এবং কোন বাকি থাকতে পারে দেখতে।

;
)
;

>
=
 
 

প্রথমত, ইনপুট সংগ্রহ করা হয়। nপ্রথম ঘরে রয়েছে, dদ্বিতীয়টিতে।

 >(-)-)+(([!
 "=========#
          )<
           "
 !
 #"="===##=
  
  

এটি মূলত প্রধান লুপ। এটি প্রথম এবং দ্বিতীয় কোষ হ্রাস করে এবং তৃতীয়টি বৃদ্ধি করে।

           [!)
           =#[
             !+
             #:
            (<
            :"
 
 

এটিই চূড়ান্ত আউটপুট। যদি ইনক্রিমেন্টিং / হ্রাসের পরে, প্রথম ঘরটি 0 হয়, তবে আমরা মুছে ফেলেছি n। এর পরে যদি দ্বিতীয় কক্ষটি ( d) হয় 0তবে সমানভাবে dচলে যায় n। আমরা ইনক্রিমেন্ট এবং মুদ্রণ ( 1)। অন্যথায়, প্রথম কক্ষে ফিরে যা (যা হয় 0) এবং এটি মুদ্রণ করুন।

 
 
  +(![-)<  
  ==#==="  
 !< >(+ !![
 #"="===##=
  !      <
  #======"

এই লুপটি ঘটে যদি দ্বিতীয় কক্ষটি 0বৃদ্ধি এবং হ্রাসের পরে হয় । এটি দ্বিতীয় কক্ষে তৃতীয় কক্ষটি অনুলিপি করে। নীচের অংশটি হ'ল ঘরটি না থাকলে লুপটি বাইপাস করা 0


3

Tcl, 34 বাইট

ge stdin a
ge stdin b
exp $a%$b<1

আমার প্রথম / * সফল * / কোডগল্ফে চেষ্টা! এই কোড টিসিএল শেলের মধ্যে কার্যকর করা উচিত, অন্যথায় এটি কাজ করবে না।

@ লিনকে একটি বাইট ধন্যবাদ।

ফোর বাইটস @ লিন এবং @ লিকইউনকে ধন্যবাদ (এখন আমি বুঝতে পেরেছি তিনি কী বোঝাতে চেয়েছিলেন)!


বাদ দিতে পারেন ?1:0?
লিকি নুন

পছন্দ করুন আপনি যখন বোঝাতে চাইছেন তখন কি ফিরে আসবেন?

কি $a%$b==0ফিরে আসবে?
লিকি নুন

1
মানে, আপনার তৃতীয় লাইনটি কি ঠিক হতে পারে exp $a%$b==0?
লিকি নুন

1
বা exp $a%$b<1, হতে পারে?
লিন

3

পিএইচপি, 23 22 বাইট

<?=$argv[1]%$argv[2]<1

সত্যের জন্য 1 মুদ্রণ করে, মিথ্যাটির জন্য খালি স্ট্রিং (= কিছুই নয়)

সঙ্গে CLI থেকে কল nএবং dআর্গুমেন্ট হিসাবে


প্রাচীন পিএইচপি জন্য 10 বাইট: <?=$n%$d<1


আপনি PHP4.1 ব্যবহার কিছু মনে না করেন: <?=!($A%$B)। মান আপনার অংশ হিসেবে প্রেরণ করা সম্ভব $_SESSION, $_COOKIE, $_POST, $_GETবা (যদি আমার ভুল না হলে) উপর $_ENV
ইসমাইল মিগুয়েল

@ ইসমাইল মিগুয়েল: আসলে আমি তা করি না, তবে আমি প্রাচীন পিএইচপি সংস্করণগুলি পোস্ট করে এবং যুক্ত করে ক্লান্ত হয়ে পড়েছি for PHP<5.4 with register_globals=On। তবে আমি এটি রেফারেন্সের জন্য যুক্ত করব।
তিতাস

প্রকৃতপক্ষে, আপনি " for PHP<5.4 with register_globals=On" বলতে পারবেন না , যেহেতু আপনাকে আপনার ফাইলযুক্ত বাইটগুলি গণনা করতে php.iniহবে register_globals=On। তবে, পিএইচপি 4.1 একটি বিশেষ মামলা case এটি সর্বশেষ সংস্করণ যেখানে register_globals=Onডিফল্ট মান, এবং বেশিরভাগ ফাংশনগুলি পিএইচপি 4.1 এবং এর থেকে পাওয়া যায়। এই সংস্করণটি সতর্কতা ছাড়াই eregএবং splitছাড়াই অন্যান্য ফাংশনগুলিরও ব্যবহারের অনুমতি দেয় ।
ইসমাইল মিগুয়েল

3

জে, 3 বাইট

0=|

ব্যবহার:

2 (0=|) 10 

ফিরে আসবে 1। এবং সিউডোকোডের সমতুল্য10 MOD 2 EQ 0

নোট করুন এটি এপিএল উত্তরের সাথে খুব মিল , কারণ জে এপিএল দ্বারা অনুপ্রাণিত হেভিলি


প্রথম প্রথম উত্তর, পিপিসিগিতে আপনাকে স্বাগতম!
ফাঁস নুন

ধন্যবাদ
এমিফ্লেক

3

পাওয়ারশেল ভি 2 +, 20 বাইট

!($args-join'%'|iex)

দুটি কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয় $args, -joinসেগুলিকে %পৃথককারী, পাইপগুলি iex(সংক্ষেপে Invoke-Expressionএবং অনুরূপ eval) হিসাবে স্ট্রিংয়ের সাথে একত্রে এনে দেয় । ফলাফল হয় 0বা অ-শূন্য, সুতরাং আমরা !সেই ফলাফলের নয় বুলিয়ান গ্রহণ করি , যার অর্থ হয় $TRUEবা হয় $FALSE(পাওয়ারশেলের শূন্য-শূন্য পূর্ণসংখ্যা সত্যবাদী)। যে বুলিয়ান পাইপলাইনে রেখে গেছে এবং আউটপুট অন্তর্ভুক্ত।

বিকল্প সংস্করণ, এছাড়াও প্রতিটি 20 বাইট

param($a,$b)!($a%$b)
!($args[0]%$args[1])

একই ধারণা, ইনপুট কাঠামোর কিছুটা ভিন্ন উপায়। এগুলি সরবরাহ করার জন্য @ ডার্থটওয়ানকে ধন্যবাদ।

উদাহরণ

PS C:\Tools\Scripts\golfing> .\divisibility-test.ps1 24 12
True

PS C:\Tools\Scripts\golfing> .\divisibility-test.ps1 24 13
False

PS C:\Tools\Scripts\golfing> .\divisibility-test.ps1 12 24
False

অন্য দুটি পদ্ধতিতে আমি এই প্রশ্নটি গল্ফ করার চেষ্টা করেছি, আমি সেগুলি 20 param($a,$b)!($a%$b)!($args[0]%$args[1])
বাইটেও

পছন্দ করেছেন অল্প পরিমাণে অপারেশনগুলির সাথে কাজ করার সময়, ইনপুট আর্গুমেন্টগুলি গ্রহণ করার বিভিন্ন উপায়ে সাধারণত প্রায় এক বা দুটি বাইট পার্থক্য থাকে।
অ্যাডমবর্কবার্ক

আমি আরও সংক্ষিপ্ত কিছু নিয়ে আসার প্রত্যাশা করছিলাম: পি তবে হ্যাঁ, বিড়ালের চামড়ার সবসময় একাধিক উপায় রয়েছে, বিশেষত পিএসে।
ThePoShWolf

3

Haskell,, 13 11 বাইট

((1>).).mod

এটি একটি নতুন ফাংশন সংজ্ঞায়িত করে (!) :: Integral n => n -> n -> Bool। যেহেতু mod n mকেবল ইতিবাচক সংখ্যাগুলি প্রদান করে nএবং mইতিবাচক হয় তাই আমরা এর 1>পরিবর্তে ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারি 0==

ব্যবহার:

ghci> let n!d=1>mod n d
ghci> 100 ! 2
True
ghci> 100 ! 3
False

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