ম্যাগনিনিমাস সংখ্যা


24

কোনও ধনাত্মক পূর্ণসংখ্যার ইনপুট হিসাবে নির্ধারিত হয় যে এটি কোনও বিশাল সংখ্যা কিনা determine

ম্যাগানিমামাস সংখ্যা এমন একটি সংখ্যা যা +বেস 10 এর মধ্যে কোনও দুটি সংখ্যার মধ্যে কোনও চিহ্ন সন্নিবেশ করায় একটি প্রধান পূর্ণসংখ্যার প্রকাশ হয়।

উদাহরণস্বরূপ 40427 কারণ বিশাল

4+0427  = 431  is prime
40+427  = 467  is prime
404+27  = 431  is prime
4042+7  = 4049 is prime

আউটপুট

আপনার দুটি স্বতন্ত্র মান আউটপুট করা উচিত, একটি ইনপুট যখন ম্যাগানিমিয়াস হয় এবং একটি যখন ইনপুট থাকে না।

স্কোরিং

এই প্রতিযোগিতার লক্ষ্য হ'ল বাইটগুলিতে দেওয়া এই টাস্কটি সমাধান করার জন্য লিখিত উত্স কোডের আকারকে যতটা সম্ভব ছোট করা হবে।

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

1       -> True
2       -> True
4       -> True
10      -> False
98      -> True
101     -> True
109     -> False
819     -> False
4063    -> True
40427   -> True
2000221 -> True

ওআইআইএস 253996


আমি কীভাবে 1 এবং 2 এমনকি বৈধ ইনপুটগুলিও চ্যালেঞ্জের সংজ্ঞা দিয়ে বিভ্রান্ত করছি। এই সত্যটি ছেড়ে দেওয়া যাক যে 1কোনও দুটি অক্ষরের মধ্যে plusোকানো একাধিক চিহ্ন (কোনও সন্নিবেশ না করা) কেবলমাত্র ফলাফল হিসাবে দেখাতে পারে 1, যা নিজেই প্রধান নয়।
ম্যাজিক অক্টোপাস উর্ন

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

উত্তর:


8

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

কোড

η¨¹.s¨R+pP

05AB1E এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন!

ব্যাখ্যা

η¨             # Take the prefixes of the input and remove the last element
  ¹.s¨         # Take the suffixes of the input and remove the last element
      R        # Reverse the array of suffixes
       +       # Vectorized addition
        p      # Check if each element is prime
         P     # Product of the array

এটি কীভাবে কাজ করে 1 - 9। খালি সেটটির পণ্য 1? কেন?
ম্যাজিক অক্টোপাস উরন

@ ম্যাজিক অ্যাক্টোপাস ইউরান খালি পণ্য সর্বদা সমান 1
আদনান

@ ম্যাজিক অ্যাক্টপাস ইউরান পণ্যটি গ্রহণ করা মূলত 1সেটের প্রতিটি আইটেম দ্বারা এটি শুরু করে এবং গুণ করা হয়, তাই ...
ETH প্রোডাকশন

1
আহ, গাণিতিক অর্থে। বাস্তবায়ন করার সময় প্রযোজ্য সম্পত্তিটি ব্যবহার করার সময় কীভাবে সমতুল্য , ঠিক তেমনই অনুমান sumকরুন smart []0
ম্যাজিক অক্টোপাস উরন

@ জন্ট্রো হ্যাঁ, ইউটিএফ -8 এ , এটি 14 বাইট। তবে, 05AB1E 05AB1E কোড পৃষ্ঠা ব্যবহার করে , যেখানে এটি 10 ​​বাইট।
আদনান

7

সি (জিসিসি) , 8384 85 83 84 86 75 111 বাইট

সমস্ত অপ্টিমাইজেশন বন্ধ হয়ে গেছে এবং কেবলমাত্র জিসিসি 32-বিটে।

-1 বাইট @ সিলিংক্যাট ধন্যবাদ

1কেস জন্য কিছু বাইট ।

পুনরায় ব্যবহারযোগ্য ফাংশনগুলির জন্য কিছু বাইট।

i,j,r,s;f(a){for(i=10,r=1;a/i;i*=10)for(s=a%i+a/i,r*=s-1,j=2;j<s;)r*=s%j++>0;a=!r;}

পূর্ণসংখ্যা হিসাবে ইনপুট নেয়। মিথ্যা মামলার জন্য 1, সত্য মামলার জন্য 0 প্রদান করুন।

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

গাণিতিক কোড (55 বাইট) এর জন্য আমার আর একটি উত্তর দেখুন।


এটি দুটি পৃথক উত্তর হওয়া উচিত। এছাড়াও, ম্যাথামেটিকাল সমাধান জন্য ভুল ফলাফল দেয় 1, 98এবং 4063
নেজেনিসিস

6

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

\B
$`$*_$'$*_
S`\d
G`^_$|^(__+)\1+$
^$

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

1ম্যাগনিনিমাস সংখ্যার জন্য মুদ্রণ এবং 0অন্যথায়।

ব্যাখ্যা

\B
$`$*_$'$*_

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

S`\d

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

G`^_$|^(__+)\1+$

অ্যানারিতে অ-প্রাইম সংখ্যাগুলির সাথে মেলে এটি স্ট্যান্ডার্ড রেজেক্স। Gএখানে একটি প্রতিনিধি পর্যায়ের ব্যবহারের অর্থ হ'ল আমরা কেবল সমস্ত লাইনকে ধনাত্মক নন-প্রাইমগুলি (খালি লাইনগুলি ত্যাগ করে) রাখি।

^$

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


4

পাইথন 2 , 82 79 78 বাইট

f=lambda n,d=10:n<d or d/n<all((n/d+n%d)%k*f(n,10*d)for k in range(2,n/d+n%d))

এটি ধীর এবং শুধুমাত্র স্মৃতিচারণের মাধ্যমে পরীক্ষার ক্ষেত্রে মোকাবেলা করতে পারে।

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

বিকল্প সংস্করণ, 79 বাইট

f=lambda n,d=10:n<d or f(n,10*d)>d/n<all((n/d+n%d)%k for k in range(2,n/d+n%d))

এক বাইটের দামে গতি বেড়েছে।

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


3

এর চালাক ব্যবহার d!
এরিক দি আউটগল্ফার

@ এরিকট আউটগল্ফার এটি "তৃতীয় বিকল্পের পরে চেষ্টা করেছি," সমস্ত বিভাজন -> দৈর্ঘ্যের 2 টি ফিল্টার "এবং" জে, অসত্য, প্রতিটি বিভাজন "
লিকি নুন

3

জাভা 8, 175 171 94 88 বাইট

n->{long d=10,r=0,i,t;for(;d<=n;d*=10,r|=t-i)for(t=n/d+n%d,i=1;t%++i%t>0;);return r==0;}

পূর্ণসংখ্যাটি প্রধান কিনা তা পরীক্ষা করার জন্য একটি পাটিগণিত (স্ট্রিং এর পরিবর্তে ) ব্যবহার করে এবং পৃথক পদ্ধতি থেকে মুক্তি পেয়ে @ পিটারটেলরকে ধন্যবাদ জানান ।। @ সারাজের প্রাইম-চেকিং পদ্ধতিটি ব্যবহার করে -6 বাইটস , সুতরাং তাকে উর্ধ্বমুখী করা নিশ্চিত করুন!.substring

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

ব্যাখ্যা:

n->{                  // Method with long as both parameter and return-type
  long d=10,r=0,i,t;  //  Some temp longs
  for(;d<=n           //  Loop as long as `d` is below or equal to input `n`
                      //  (inclusive instead of exclusive due to special case 10)
      ;               //    After every iteration:
       d*=10,         //     Multiple `d` by 10
       r|=t-i)        //     and Bitwise-OR `r` with `t-i`
    for(t=n/d+n%d,    //   Set `t` to `n` integer-divided by `d` plus `n` modulo-`d`
        i=1;          //   Set `i` to 1
        t%++i%t>0;);  //   Inner oop as long as `t` modulo `i+1` modulo `t` is not 0 yet
                      //   (after we've first increased `i` by 1 with `++i`)
                      //   (if `t` equals `i` afterwards, it means `t` is a prime)
  return r==0;}       //  Return if `r` is still 0

1
আমি মনে করি এটি সংক্ষিপ্ত করার জন্য কমপক্ষে দুটি উপায় রয়েছে: প্রথমত, পুনরায় pসংবর্তনের সাথে লুপটি প্রতিস্থাপন করুন ; দ্বিতীয়ত, এই ধরনের ফলাফল জমা প্রধান ফাংশন শুধুমাত্র একটি প্রয়োজন যে returnথেকে প্রহরী মান করে বিবৃতি pহতে -1এবং ব্যবহার &চেক করার জন্য যে সব ফিরে মান -1
পিটার টেলর

1
আসলে, বড়টি হল: স্ট্রিং ব্যবহার করবেন না।
পিটার টেলর

n->{for(long d=10,m=1;d<n;d*=10)m|=p(n/d+n%d,2)-2;return m>0;}long p(long n,int i){return i<n?p(n%i<1?1:n,i+1):n;}
পিটার টেলর

@ পিটারটেলর পরামর্শের জন্য ধন্যবাদ! আপনার প্রস্তাবিত ফাংশনটি শেষে, আপনি কি নিশ্চিত যে এটি সঠিক? আমি বর্তমানে ভুল ফলাফল দিচ্ছি, যদি না আমি কিছু ভুল করি।
কেভিন ক্রুইজসেন

1
ঠিক আছে, d<=nহ্যান্ডেল করতে 10। স্ট্যাক ওভারফ্লো কোনও সমস্যা নয় (স্পেকটি হ্যান্ডল করতে হবে এমন এক ধরণের ইনপুট দেয় না), তবে এটি লুপ এবং ইনলাইনিংয়ে ফিরে যাওয়ার মাধ্যমে স্থির করা যায় এবং আরও বেশি সঞ্চয় লাভ করা যায় ।
পিটার টেলর

2

পাইথ , 14 বাইট

.AmP_ssMcQ]dtU

এটি অনলাইন চেষ্টা করুন!অন্যথায় True, সংখ্যাটি যদি চূড়ান্ত হয় তবে প্রদর্শিত Falseহবে। স্ট্রিং হিসাবে নম্বর নেয়।

ব্যাখ্যা

.AmP_ssMcQ]dtU

              Q    # Implicit input Q
            tU     # Generate the range [1, 2, ..., len(Q)-1]
  m                # For each index d in the above range...
        cQ]d       # Split Q at index d
      sM           # Convert the two parts to integers
     s             # Sum
   P_              # Check it is a prime
.A                 # ...end for. Check all elements are True

2

পাইথন 2 , 104 102 98 96 103 বাইট

  • @ বীট উইজার্ডকে 2 বাইটের জন্য ধন্যবাদ: iসম্পূর্ণ বেনামে তৈরি করা হয়েছে যেহেতু এটি কেবল একবার ডাকা হয়।
  • 4 হাই বাইটের জন্য হাইপারনেট্রিনোকে ধন্যবাদ: মূল নম্বর থেকে কাটা কাটার পরিবর্তে সংখ্যাগুলি অর্জনের স্মার্ট উপায়
  • @ হাইপারনিউট্রিনো আরও 2 টি বাইট সংরক্ষণ করেছেন: x-1কেবল xপ্রাইম চেকিংয়ের জন্য for
  • মামলার স্থির ব্যর্থতা x=10, এভাবে 7 ডলার এবং ডেনিস এবং @ ওয়েট উইজার্ডকে এটি সন্ধান করার জন্য ধন্যবাদ: আমার আগের সংস্করণটি 1 জনকে প্রধান হিসাবে বিবেচনা করছে
lambda x:all((lambda x:x>1and all(x%j for j in range(2,x)))(x/10**j+x%10**j)for j in range(1,len(`x`)))

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



দুর্দান্ত, ধন্যবাদ @ হাইপার নিউট্রিনো
অফিসিয়ালাইম

1
96 বাইট : আপনার x-1পরিসীমা শেষে দরকার নেই ; পরিসীমা ডানদিকে একচেটিয়া।
হাইপারনিউটারিনো

1
এটি 10 (নতুন পরীক্ষার কেস) এর জন্য ব্যর্থ ।
ডেনিস

1
এই জন্য 10. আমি এও বিশ্বাস করেন যে 10 ব্যর্থ শুধুমাত্র সংখ্যা এই জন্য ব্যর্থ।
গম উইজার্ড

2

জাপট , 24 16 বাইট

এটি @ শ্যাগি, @ ইথ প্রডাকশন এবং আমার মধ্যে বেশ সহযোগিতা ছিল।

¬£[YîU UtY]xÃÅej

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

স্ট্রিং হিসাবে ইনপুট নেয়।


গাহ! আমি যে বিকল্প সমাধানের উপর কাজ করছিলাম তার প্রায় অভিন্ন! এখানে 22 বাইট আমি এটা নিচে ছিল এতদূর করতে। সম্পাদনা করুন: উভয় থেকে জিনিস একত্রিত করে এটি 20 বাইটে নামা হয়েছে।
শেগি

@ শেগি মজাদার যথেষ্ট, আমি এখনই আমার সম্পাদনা নিয়ে কাজ করছি ... এটি আপনার মতোই মর্মস্পর্শী
অলিভার

ইঙ্গিত: xঅ্যারেতে থাকা আইটেমগুলি স্বয়ংক্রিয়ভাবে সংখ্যায় রূপান্তর করে ;-)
ETH প্রোডাকশনগুলি

হ্যাঁ, আমি যেখানে সেখানে গিয়েছি, @ পাঠ্যক্রমগুলি: 16 বাইট
শেগি

এছাড়াও, XîUপ্রতিভা। আমি মনে করি U¯Xএকই দৈর্ঘ্যের জন্য কাজ করে, তবে এখনও
ETH প্রোডাকশনগুলি

2

পিপ , 25 24 বাইট

$&0N_%,_=1M$+(a^@_)M1,#a

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

ব্যাখ্যা

aপ্রথম কমান্ড-লাইন আর্গুমেন্ট। মাধ্যমে 1,#aসংখ্যার সমন্বয়ে একটি পরিসীমা তৈরি 1করে len(a)-1। এটিতে, আমরা একটি ল্যাম্বডা ফাংশনটি ম্যাপ করি:

$+(a^@_)
   a^@_   Split a at this index
$+(    )  Fold the resulting 2-element list on +

এর পরে, আমরা আর একটি ল্যাম্বদা ফাংশন ম্যাপ করি 0N_%,_=1, এটি আদিমতার জন্য পরীক্ষা করে। আমি এই উত্তর থেকে এটি গ্রহণ ; আপনি সেখানে ব্যাখ্যা পড়তে পারেন। অবশেষে, আমরা তালিকাটি লজিকাল এন্ড ( $&) এ ভাঁজ করি । ফলাফলটি হল 1যদি সমস্ত অঙ্কগুলি প্রাইম ছিল, 0যদি তাদের কোনওটি না থাকে।

উদাহরণস্বরূপ, এর ইনপুট সহ 4063:

                    1,#a   [1; 2; 3]
           $+(a^@_)M       [67; 103; 409]
  0N_%,_=1M                [1; 1; 1]
$&                         1

2

সিজেম , 22 বাইট

r:L,({)_L<i\L>i+mp!},!

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

সত্যের জন্য ধনাত্মক পূর্ণসংখ্যা মুগ্ধ করার জন্য শূন্য প্রিন্ট করে।

-1 পিটার টেলরের একটি চতুর কৌশলকে ধন্যবাদ ।
-3 পিটার টেলরের আরও একটি টিপকে ধন্যবাদ।


0&!এর চেয়ে ছোট1+:*
পিটার টেলর

@ পিটারটেলর ওহ যে চতুর ... আপনি এই কথাটি অপব্যবহার করেছেন যে !একটি বুলিয়ান ফেরত দেয় এবং মিথ্যা মান দিয়ে সেট-ছেদ ব্যবহার করেছিল 0যাতে আপনি এর 0&!পরিবর্তে 3 তে করতে পারেন 1&!!...
এরিক দ্য আউটগলফার

আপনি একটি ভেরিয়েবলের ইনপুট বরাদ্দ দিয়ে আরও 3 বাইট সংরক্ষণ করতে পারেন যা স্ট্যাকের ম্যানিপুলেশনগুলিকে সহজ করে তোলে এবং এর ,পরিবর্তে ফিল্টার অপারেটরটি ব্যবহার করে f
পিটার টেলর

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

@ পিটারটেলর এটিই আমার অর্থ নয় ...: পি
এরিক দ্য আউটগোল্ফার

2

Japt , 23 বাইট

স্ট্রিং হিসাবে ইনপুট নেয়।

ধূর; আমি কাজ করছিলাম এমন একটি আরও সংক্ষিপ্ত বিকল্পে পাঞ্চকে মারধর করা

£i+Ýe@OxXr"%+0+"'+)j

এটা পরীক্ষা করো


@ ইথ প্রডাকশনস, না, আপনি ঠিক বলেছেন; মূল সংস্করণটি ভুল ছিল; কেবল ম্যাগনিমাস প্রাইমগুলির জন্য পরীক্ষা করা হচ্ছে । ¬£i+YÄÃe@OxX j
শেগি

আমি জানতাম যে আমি আমার মন হারিয়ে
ফেলিনি

1
ব্যর্থ হয় 4063(সত্য হওয়া উচিত, মিথ্যা)। এখানে কৌশলটি হ'ল জেএস মনে করে একটি শীর্ষস্থানীয় 0মানে আপনি
অষ্টাল

হুঁ ... ঠিক আছে, ভাবেন আমার একটি বিকল্প আছে - এটি পরীক্ষা করতে এবং এটি গল্ফ করতে কয়েক মিনিট সময় নেয়।
শেগি

আমি মনে করি এটি এখন এমন কিছু ক্ষেত্রে ব্যর্থ হবে যেখানে দুটি 0 এর পরে দুটি আরও দুটি অঙ্ক থাকবে ... ( 40043উদাহরণস্বরূপ) +এটি 0ঠিক করার জন্য কেবল একটি যুক্ত করুন ।
ইটিএইচ প্রডাকশনস

2

গণিত, 75 বাইট

And@@Table[PrimeQ@ToExpression@StringInsert[#,"+",n],{n,2,StringLength@#}]&

Functionযা প্রত্যাশা করে a String। তম সংখ্যার পরে PrimeQ@ToExpression@StringInsert[#,"+",n]একটি সন্নিবেশ করানো একটি মৌলিক সংখ্যা দেয় কিনা তা প্রদান করে। স্ট্রিংয়ের দৈর্ঘ্য থেকে শুরু করে মানগুলির তালিকা দেয় । তারপরে আমরা সেই তালিকার প্রতিটি উপাদান নিয়ে থাকি । সুবিধার্থে, যদি , তবে খালি তালিকা, যার জন্য+nTable[...,{n,2,StringLength@#}]n2AndStringLength@#<2Table[...]And@@{}==True


2

গণিত, 55 50 45 49 50 54 62 বাইট

মনে হচ্ছে আমার এটি আলাদাভাবে পোস্ট করা উচিত।

কোড দৈর্ঘ্যের জন্য +6 বাইট স্মরণ করিয়ে দেওয়া।

+5 বাইট নেজেনিসিসকে ধন্যবাদ।

And@@(qPrimeQ[#~Mod~q+⌊#/q⌋])@Rest@PowerRange@#&

পূর্ণসংখ্যা হিসাবে ইনপুট নেয় এবং নিয়মিত Trueএবং ফিরে আসে Falseমধ্যবর্তী 0xF4A1 ইউনিকোড জন্য ছোট Function[,]। কোডের দৈর্ঘ্য ফাইলের আকার (বিওএম ছাড়াই ইউটিএফ -8) পরিমাপ করা হয়, এটি সঠিক না হলে মন্তব্য করুন।

PowerRange[x]1, 10, 100 প্রদান করে ... এর চেয়ে বড় আর কোনও নয় x, যা ম্যাথমেটিকা ​​10-এ প্রবর্তিত।


2

সরল ইংলিশ 4,204 341 315 251 241 240 বাইট

(পুনঃ) প্লেইন ইংলিশের লাইব্রেরিতে ৩,৮63৩ বাইট সরিয়ে, প্লেইন ইংলিশের লাইব্রেরিতে প্রাথমিক পরীক্ষাটি সংযুক্ত করে। 26 টি বাইট সাদা স্থান মুছে ফেলা হয়েছে। স্থানীয় ভেরিয়েবলগুলি সংক্ষিপ্ত করে 64 বাইট সংরক্ষণ করা। ইন্টারফেস সংক্ষেপে 10 বাইট সংরক্ষণ করা। প্রতি RosLuP এর প্রস্তাবনা পরিবর্তন কিভাবে মি সক্রিয়া এবং মান বৃদ্ধি হয় 1 বাইট সংরক্ষিত হয়েছে।

To decide if a n number is g:
Put 1 in a m number.
Loop.
Multiply the m by 10.
If the m is greater than the n, say yes.
Divide the n by the m giving a q quotient and a r remainder.
Add the q to the r.
If the r is not prime, say no.
Repeat.

চূড়ান্ত কোডটির দারুণ সংস্করণ:

To decide if a number is magnanimous:
  Put 1 in another number.
  Loop.
    Multiply the other number by 10.
    If the other number is greater than the number, say yes.
    Divide the number by the other number giving a quotient and a remainder.
    Add the quotient to the remainder.
    If the remainder is not prime, say no.
  Repeat.

দ্রষ্টব্য: সরল ইংরাজী আইডিই github.com/Folds/englishউপলব্ধ । আইডিই উইন্ডোজে চলে। এটি 32-বিট x86 কোডে সংকলন করে।

Osmosian অর্ডার প্লেইন ইংরেজি এর গতিশীল কাঁটাচামচ ইতিমধ্যে সংস্করণ 4700 সালে পরীক্ষা primality ছিল, কিন্তু এটি একটি খুব অদক্ষ অ্যালগরিদম (জুন 2017 মাধ্যমে জানুয়ারি হিসেবে) ব্যবহার করা হয়েছে। গিটহাব সাইটের গতিশীল কাঁটাচামড়ার 4001-4011 সংস্করণগুলি আদিমতার পরীক্ষা বাদ দিয়েছে। গিটহাব সাইটের গতিশীল কাঁটাচামড়ার 4013 সংস্করণে প্রাথমিকতা পরীক্ষা অন্তর্ভুক্ত রয়েছে। প্রাথমিকতা পরীক্ষা করার কোডটি এই উত্তরের পূর্ববর্তী সংশোধনের অংশ হিসাবে তৈরি হয়েছিল।


1

পার্ল 6 , 58 বাইট

{?(10,10* *...^*>$_).map({$_ div$^a+$_%$^a}).all.is-prime}

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

10, 10 * * ...^ * > $_দশটির গুণকের জ্যামিতিক ক্রম হ'ল, ইনপুট প্যারামিটারের ছাড়িয়ে যাওয়া উপাদানটির আগে এক পর্যন্ত নেওয়া $_। তারপরে আমরা কেবল দশটির প্রতিটি পাওয়ারের জন্য যাচাই করে দেখি যে ইনপুট প্যারামিটারের যোগফল ডিভ এবং মোড power


1

Haskell,, 114 110 বাইট

p x=[x]==[i|i<-[2..x],x`mod`i<1]
i!x|i<1=0<1|0<1=p(uncurry(+)$divMod x$10^i)&&(i-1)!x
f x=(length(show x)-1)!x

ব্যাখ্যার সাথে নিরবচ্ছিন্ন:

-- Check if x is a prime number
p x = [x] == [i | i<-[2..x], x`mod`i < 1]
-- Checks all pairs of numbers a '+' can be put in between
i ! x | i<1 = 0<1                                -- Single-digit numbers are always truthy
      | 0<1 = p (uncurry (+) $ divMod x $ 10^i)  -- Does x split at i digits from right sum up to a prime?
           && (i-1) ! x                          -- If so, check next pair
-- Start (!) with the number of digits in x minus one
f x = (length (show x)-1) ! x

আপনি যদি p x=[x]==[i|i<-[2..x],x`mod`i<1]আপনার প্রধান চেক হিসাবে ব্যবহার করেন তবে আপনি 2 বাইট সংরক্ষণ করতে পারবেন।
গম উইজার্ড

আপনি এর divMod x$10^iপরিবর্তে ব্যবহার করতে পারেনx`divMod`(10^i)
গম উইজার্ড

@ ওয়েট উইজার্ড: আমি জানি প্রাথমিক পরীক্ষাটি এখনও কোনওভাবে উন্নত হতে পারে। ;) ধন্যবাদ!
সেরাকুসা

1

অ্যাক্সিয়োম, 88 বাইট

f(n:PI):Boolean==(i:=10;repeat(q:=n quo i;q=0 or ~prime?(q+n rem i)=>break;i:=i*10);q=0)

পরীক্ষা এবং ফলাফল

(10) -> [[i,f(i)]  for i in [1,2,4,10,98,101,109,819,4063,40427,2000221,999999999999999999999999999999999999999999999]]
   (10)
   [[1,true], [2,true], [4,true], [10,false], [98,true], [101,true],
    [109,false], [819,false], [4063,true], [40427,true], [2000221,true],
    [999999999999999999999999999999999999999999999 ,false]]



0

স্ট্যাকড , 51 বাইট

[tostr:#'1-~>splitat tr['+',' '#`#~prime]map 1,all]

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

এটি একটি ফাংশন। এটা তার যুক্তি স্ট্রিং (রূপান্তর করে কাজ করে tostr), এটা অনুরূপ এবং তার দৈর্ঘ্য (প্রাপ্তির :#'(), 1 বিয়োগ 1-) যে নম্বরে, একটি সীমার উপার্জন 1 থেকে ( ~>)। স্ট্যাকটি ইনপুটটির জন্য এমন কিছু দেখাচ্ছে 40427:

('40427' (1 2 3 4))

আমরা ভেক্টরাইজড পারফর্ম করি splitat, যার ফলে নীচের অ্যারেটি স্ট্যাকের শীর্ষে থাকবে:

(('4' '40' '404' '4042') ('0427' '427' '27' '7'))

এর সাথে ট্রান্সপোসিং করে trআমরা পাই:

(('4' '0427') ('40' '427') ('404' '27') ('4042' '7'))

তারপরে, আমরা ['+',' '## ~ (withপ্রাথমিক ] মানচিত্রটি ফাংশনটি ম্যাপ করি । এই ফাংশনটি করে:

['+',' '#`#~prime]
 '+',                concatenate a plus sign (string)    `('4' '0427' '+')
     ' '#`           join by spaces                      `'4 0427 +'`
          #~         evaluate                            `431`
            prime    check primality                     `1`

তারপরে, মানচিত্রের পরে, আমরা সম্মতি জানাই 1। এটি খালি তালিকার জন্য allফিরে আসে undef


0

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

P=(n,x=2)=>n%x?P(n,x+1):n==x
f=(n,i=10)=>i>n||P((n/i|0)+n%i)&f(n,i*10)

গণনা করার সময় "অত্যধিক পুনরাবৃত্তি" ত্রুটির কারণে আমার ব্রাউজারে শেষ কেস ব্যর্থ হয় P(200023)। আশা করি এটি এটিকে অবৈধ করে না।


0

কিউবিআইসি , 38 বাইট

_L;|[a-1|q=q*µ!_sA,b|!+!_sA,b+1,a|!}?q

ব্যাখ্যা

_L |     Create a variable a and set it to the length of
  ;      the input string (A$)
[a-1|    FOR b = 1 to a-1
q=q*     multiply q by
 µ       -1 if prime, 0 if not, of
  !        a cast of 
   _s       a substring of
     A,       A$
     b        from index 1 to index b (only one index is given, so that is assumed to be the req. length from 1)
      |!   to number
 +         plus
 !         a cast of
  _s         a substring of
    A,         A$
    b+1        from index b+1
    ,a         for the length of a (does not error if it exceeds the end of the string)
      |!   to number
 }       NEXT 
 ?q      PRINT q, which is eitrher -1 or 1 for all-prime sums, or 0 otherwise

0

সিজেএম (21 বাইট)

r:R,({RiA@)#md+mp!},!

অনলাইন ডেমো , অনলাইন পরীক্ষার স্যুট

ব্যবচ্ছেদ

r:R       e# Take a token of input and assign it to R
,(        e# Take the length of R minus one
{         e# Filter i = 0 to (length of R minus two)
  Ri      e#   Push R as an integer value
  A@)#    e#   Push 10 to the power of (i + 1)
  md      e#   divmod
  +mp!    e#   Add, primality test, negate result
},        e# The result of the filter is a list of splits which give a non-prime
!         e# Negate result, giving 0 for false and 1 for true

0

পাইথ, 15 14 বাইট

.AmP_svcz]dtUz

পরীক্ষা স্যুট

পাইথের সর্বশেষতম পরিবর্তনটি ব্যবহার করে একটি বাইট সংরক্ষণ করা হয়েছে।


0

এপিএল (এনএআরএস), অক্ষর 35, বাইট 70 70

{0≥k←¯1+≢⍕⍵:1⋄∧/0π(m∣⍵)+⌊⍵÷m←10*⍳k}

পরীক্ষা:

  f←{0≥k←¯1+≢⍕⍵:1⋄∧/0π(m∣⍵)+⌊⍵÷m←10*⍳k}
  f¨1 2 4 10 98 101 109 819 4063 40427 2000221
1 1 1 0 1 1 0 0 1 1 1 

এটি এখানে এজিএল পোস্ট আলগো থেকে এপিএলে অনুবাদ হবে ...

{0≥k←¯1+≢⍕⍵:1⋄∧/0π(m∣⍵)+⌊⍵÷m←10*⍳k}
 0≥k←¯1+≢⍕⍵:1⋄  assign to k the length as array of argument return 1 if that is <=0
 ∧/0π(m∣⍵)+⌊⍵÷m←10*⍳k
              m←10*⍳k  m is the array pow(10,1..k)
           ⌊⍵÷m       the array of quotient of argumet with m
          +           sum 
     (m∣⍵)            with array of remander
   0π                 build the binary array of "are prime each"
 ∧/                   and that array


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