এটা কি দুর্বল প্রধানমন্ত্রী?


26

নিকটতম অন্যান্য প্রাইম এর চেয়ে ছোট হলে কোনও প্রাইম দুর্বল। টাই থাকলে প্রাইম দুর্বল নয় not

উদাহরণস্বরূপ 73৩ হ'ল দুর্বল প্রধান কারণ prime১ টি প্রধান তবে 75 টি সংমিশ্রিত।

কার্য

কিছু কম্পিউটার কোড লিখুন যে ইনপুট হিসাবে 2 এর চেয়ে বেশি প্রাইম দেওয়া হলে তা নির্ধারণ করবে এটি দুর্বল প্রাইম কিনা। এটি একটি স্ট্যান্ডার্ড তাই আপনার দুটি ক্ষেত্রে (যেমন weakএবং not weak) প্রতিটিটির জন্য দুটি স্বতন্ত্র মান আউটপুট করা উচিত ।

এটি তাই ট্যাগের জন্য প্রমিত নিয়ম প্রয়োগ করা হয়।

OEIS

এখানে প্রথম 47 টি দুর্বল প্রাইম রয়েছে:

3, 7, 13, 19, 23, 31, 43, 47, 61, 73, 83, 89, 103, 109, 113, 131, 139, 151, 167, 181, 193, 199, 229, 233, 241, 271, 283, 293, 313, 317, 337, 349, 353, 359, 383, 389, 401, 409, 421, 433, 443, 449, 463, 467, 491, 503, 509, 523, 547, 571, 577, 601, 619, 643, 647

দুর্বল প্রাইমগুলির জন্য এখানে OEIS রয়েছে (ফিরে আসা উচিত weak) OEIS A051635

ভারসাম্যহীন প্রাইমগুলির জন্য ওইআইএস রয়েছে (ফিরে আসা উচিত not weak) ওইআইএস এএক 656562 65

শক্তিশালী প্রাইমস (ফিরে আসা উচিত not weak) এর জন্য ওইআইএস এটিএইএস এ051634



7
@ ক্যালকুলেটরফ্লাইন দুর্বল নয় শক্তির চেয়ে আলাদা
গম উইজার্ড

উত্তর:


26

জেলি , 7 বাইট

Æn+Æp>Ḥ

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

ব্যাখ্যা

           See if
Æn         the next prime
  +Æp      plus the previous prime
     >Ḥ    is greater than 2n

বোনাস হিসাবে , যথাক্রমে সুষম এবং শক্তিশালী প্রাইমগুলির জন্য পরিবর্তন >করা =বা <চেক করা।


তা তো হওয়া উচিত >, না?
ডেনিস

2
ওহ বাহ, সে চালাক ...
ETH প্রোডাকশনগুলি

আমি সবেমাত্র এইভাবে কাজ করেছি। চমৎকার কাজ!
জনাথন অ্যালান

এটি এত চালাক ...
এরিক দি আউটগল্ফার

12

গণিত, 24 বাইট

n=NextPrime;2#+n@-#<n@#&

NextPrimeবিল্ট-ইন (AB?) এটি একটি নেতিবাচক যুক্তি খাইয়ে পূর্ববর্তী মৌলিক গনা ব্যবহার করা যাবে।


6

জেলি , 9 বাইট

ḤÆRạÞ⁸ḊḢ>

রিটার্নস 1দুর্বল এবং জন্য 0(আয় জন্য দুর্বল বা সুষম 1একজন ইনপুট জন্য 2)

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

কিভাবে?

ḤÆRạÞ⁸ḊḢ> - Link: prime number > 2, p
Ḥ         - double -> 2*p
 ÆR       - yield primes between 2 and 2*p inclusive
     ⁸    - chain's left argument, p
    Þ     - sort by:
   ạ      -   absolute difference (i.e. distance from p)
      Ḋ   - dequeue (removes p from the list, since it has distance zero)
       Ḣ  - head (gives us the nearest, if two the smallest of the two)
        > - greater than p?

একটি জটিল সমাধান সঙ্গে Ninja'd আমাকে ...
এরিক Outgolfer

এটি একটি বিভক্ত দ্বিতীয় ছিল!
জোনাথন অ্যালান

1
না এটি ছিল না, এটি ছিল 9 পূর্ণ সেকেন্ডের iirc। না, 10 সেকেন্ড।
এরিক আউটগল্ফার

সুতরাং এটি ছিল (সময়গুলির দিকে তাকিয়ে) আমি এখানে জমা দেওয়ার সময় এটি ঘটেছে :)
জনাথন অ্যালান

1
ওয়েল, মনে হয় আপনি শুধু দ্রুত আমার চেয়ে (এটা থেকে প্রথম যেতে যেতে বেশ একটি ট্রিপ এর golfed ... IIṠ⁼1করতে II>0করতে I<\) ... পুলিশের অনেক বিভিন্ন যদিও। দেখে মনে হচ্ছে আপনি আমার চেয়ে আলাদা ভাবেন ... সম্পাদনা: Pietu1998 ফিরে এসেছে!
এরিক আউটগল্ফার


3

অষ্টাভে, 93 84 বাইট

বাইটস সংরক্ষণের জন্য @ লুইসমেন্দো এবং @ rahnema1 কে ধন্যবাদ!

function r=f(x);i=j=x;do--i;until(i<1|isprime(i));do++j;until(isprime(j));r=x-i<j-x;

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


আপনি কি ব্যবহার করতে পারবেন না i-=1? এছাড়াও, endফাংশনে প্রয়োজন হয় না; আপনি এটি ফুটারে স্থানান্তর করতে পারেন
লুইস মেন্ডো



3

জিএনইউ এপিএল 1.2, 78 বাইট

∇f N
X←(R←(~R∊R∘.×R)/R←1↓⍳N×2)⍳N
(|R[X-1]-N)<|R[X+1]-N
∇

∇f N একটি আর্গুমেন্ট গ্রহণ করে এমন একটি ফাংশন ঘোষণা করে।

(~R∊R∘.×R)/R←1↓⍳N×22 থেকে দ্বিগুণ যুক্তির সমস্ত প্রাইমগুলির একটি তালিকা দেয়। আমি ধরে নিচ্ছি যে পরবর্তী প্রধানটি আসল দ্বিগুণের চেয়ে কম। যদি এটি অসত্য হয় N*2তবে এন স্কোয়ার দেয় এবং একই সংখ্যক বাইট নেয় (আশা করি এটি পরবর্তী প্রাইমকে ছাড়িয়ে যাওয়ার পক্ষে যথেষ্ট বড়)। (মূল সন্ধানী কীভাবে কাজ করে তার জন্য উইকিপিডিয়ায় ব্যাখ্যা দেখুন)

X←(R←(...))⍳Nসেই তালিকাটি ভেক্টরকে বরাদ্দ করে R(তার পূর্ববর্তী বিষয়গুলি ওভাররাইট করে), Nসেই তালিকায় মূল প্রধানের সূচকটি খুঁজে পায় এবং তারপরে সেই সূচকটি নির্ধারিত করে X

|R[X-1]-Nপূর্ববর্তী প্রধানের মধ্যে পার্থক্য গণনা করে (কারণ Rপ্রাইমগুলি ধারণ করে, X-1তম উপাদানটি আগে প্রধান N) Nএবং তারপরে পরম মান গ্রহণ করে (এপিএল ডান থেকে বামে পরিচালনা করে)।

|R[X+1]-N একই কাজ, কিন্তু পরবর্তী প্রধানমন্ত্রী জন্য।

(|R[X-1]-N)<|R[X+1]-Nপূর্ববর্তী প্রধানটি পরবর্তী মৌলিকের তুলনায় মূলের কাছাকাছি থাকলে 1 এবং অন্যথায় 0 টি প্রিন্ট করে। অগ্রাধিকার জন্য প্যারেন্টেসেস প্রয়োজন।

ফাংশন শেষ।




2

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

{[>] map ->\n{$_+n,*+n...&is-prime},1,-1}

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

$_ফাংশন যুক্তি হয়। ম্যাপিং ফাংশনটি -> \n { $_ + n, * + n ... &is-prime }একটি সংখ্যা নেয় nএবং সংখ্যার ক্রম দেয় $_ + n, $_ + 2*n, ...যা শেষ হয় যখন এটি একটি মৌলিক সংখ্যায় পৌঁছায়। এই ফাংশনটিকে দুটি সংখ্যার উপরে ম্যাপিং 1এবং -1দুটি সিকোয়েন্সের ক্রম উত্পাদন করে; প্রথমটি $_ + 1প্রথম সংখ্যার চেয়ে বড় সংখ্যার $_সাথে শুরু হয় $_ - 1এবং শেষ হয় এবং দ্বিতীয়টি প্রথম প্রধান সংখ্যার চেয়ে কম দিয়ে শুরু হয় এবং শেষ হয় $_[>]বৃহত্তর-অপারেটরের সাথে এই দ্বি-উপাদান তালিকা হ্রাস করে, যদি প্রথম ক্রমটি দ্বিতীয়টির চেয়ে বড় (অর্থাত্ দীর্ঘতর) হয় তবে সত্য হয়।


2

পাইথন 2.7 - 120 বাইট

from math import*
i=lambda x:factorial(x-1)%x==x-1
def f(n,c):return 1 if i(n-c)>i(n+c) else 0 if i(n+c)>0 else f(n,c+1)

যেহেতু পাইথনের বিল্ট-ইন নেই প্রাইম ফাংশন, তাই আমরা উইলসনের উপপাদ্যটি একটি দুর্দান্ত শর্ট প্রাইম পরীক্ষক পেতে ব্যবহার করতে পারি। উইলসনের উপপাদ্যটিতে বলা হয়েছে যে একটি সংখ্যা প্রধান এবং যদি কেবল (এন -1) হয়! -1 মোড (এন) এর সাথে একত্রিত। সুতরাং ফাংশনটি আমি সংখ্যাটি প্রথম হলে 1 এবং যদি 0 না হয় তবে ফিরে আসব। এর পরে এফ ক্রিয়াকলাপটি নির্ধারণ করবে যে the সংখ্যা থেকে পরবর্তী প্রাইমটি বৃদ্ধির পরিবর্তে ডাউন বাড়ানো হলে প্রথমে উপস্থিত হয় কিনা। যদি বর্ধিত সংখ্যাগুলির মধ্যে দুটিই প্রধান না হয় তবে এটি কেবল পুনরাবৃত্তভাবে আবার কল করা হবে।

কিছু উদাহরণ I / O

f(3,1)
1
f(15,1)
0

2

পাইথন 2 , 122 108 103 94 92 বাইট

def a(n):
 r=[2];x=2
 while r[-1]<=n:x+=1;r+=[x]*all(x%i for i in r)
 return sum(r[-3:])>3*n

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

পিটুর ধারণাটি ব্যবহার করে ... এবং তারপরে সংক্ষিপ্ত প্রাথমিক তালিকার পুনরাবৃত্তকারীদের গল্ফ করে 28 বাইট সংরক্ষণ করা হয়েছে; তারপর 2 আরও বেশি প্রতিস্থাপন -3*n>0সঙ্গে >3*n(d'উহু!)


2

Regex (সর্বাধিক স্বাদ), 47 বাইট

^(?=(x*)(?!(x+)(\2\2x)+$)\1)x+(?!(xx+)\4+$)\1\1

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

আনারি ইনপুট নেয়। দুর্বল প্রাইমগুলির জন্য একটি ম্যাচ আউটপুট করে, দুর্বল প্রাইমগুলির সাথে কোনও মিল নেই। ইসমাস্ক্রিপ্ট, পার্ল, পিসিআরই, পাইথন, রুবিতে কাজ করে।

ব্যাখ্যা:

এনকে ইনপুট হিসাবে ধরা যাক, নিকটতম প্রাইম <এন এবং বি সবচেয়ে নিকটতম প্রাইম> এন হতে পারে challenge ক্ষুদ্রতম খ যেমন 2 বি + 1 টি প্রধান এবং 2 বি + 1> এন, যা 2 বি + 1 = বি নিশ্চিত করে find

(?=
  (x*)              # \1 = N - b, tail = b
  (?!(x+)(\2\2x)+$) # Assert 2b + 1 is prime
  \1                # Assert b ≥ \1 (and thus 2b + 1 > N)
)

তারপরে, নোট করুন যে আমাদের আসলে এ। খুঁজে পাওয়ার দরকার নেই যতক্ষণ না কোনও প্রাইম <এন বি এর চেয়ে N এর কাছাকাছি থাকে, এন দুর্বল প্রাইম।

x+                  # tail iterates over integers < N
(?!(xx+)\4+$)       # assert tail is prime
\1\1                # assert tail ≥ 2 * \1 (and thus tail + B > 2N)


1

জাভাস্ক্রিপ্ট ES6, 162 154 বাইট

জার্গ হালসারম্যানের কৌতুক "এক ক্ষেত্রে কিছুই প্রিন্ট করবেন না" এর ভিত্তিতে 8 বাইট সংরক্ষণ করুন । ?"Y":"N"পরে দরকার নেইone<two

var isWeak=

a=>{p=[2];i=0;f=d=>{j=p[i];l:while(j++){for(x=0;p[x]*p[x]<=j;x++){if(j%p[x]==0){continue l}}return p[++i]=j}};while(p[i]<a+1){f()};return a*2<p[i]+p[i-2]}

[43,//true
53,//false
7901,//false
7907,//true
1299853,//true
1299869//false
].forEach(n=>{console.log(n,isWeak(n))})



0

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

f=lambda n,k=1,P=1:n*[0]and P%k*[k]+f(n-P%k,k+1,P*k*k)
def a(n):p=f(n);return p.index(n)in filter(lambda i:p[i]-p[i-1]<p[i+1]-p[i],range(1,len(p)-1))

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

আমি এই পুরানো স্ট্যাক এক্সচেঞ্জ উত্তর থেকে নেওয়া একটি প্রধান উত্পাদক ফাংশন (শীর্ষ লাইন) ব্যবহার করছি


0

জাভাস্ক্রিপ্ট, 98 বাইট

let test = _=>(o.innerHTML=f(+prime.value))
let f= 

n=>{P=n=>{for(i=n,p=1;--i>1;)p=p&&n%i};a=b=n;for(p=0;!p;P(--a));for(p=0;!p;P(++b));return n-a<b-n}
Enter Prime: <input id="prime">
<button type="button" onclick="test()">test if weak</button>
<pre id="o"></pre>

কম গোলফিড hed

n=>{
   P=  // is a Prime greater than 1, result in p
       n=>{
           for(i=n,p=1;--i>1;)
               p=p&&n%i
       };

   a=b=n; // initialize lower and upper primes to n
   for(p=0;!p;P(--a)); // find lower,
   for(p=0;!p;P(++b)); // find upper,
   return n-a<b-n // is weak result
}

নোট করুন পরীক্ষার কোডটি ইনপুটটি চেক করে না "প্রাইম" আসলে একটি প্রাইম।


0

braingasm , 23 22 বাইট

1দুর্বল প্রাইমগুলির 0জন্য এবং দুর্বল না হওয়ার জন্য প্রিন্টগুলি ।

;>0$+L[->+>2[>q[#:Q]]]

walkthrough:

;                       Read a number to cell 0
 >0$+                   Go to cell 1 and copy the value of cell 0
     L                  Make the tape wrap around after cell 1
      [              ]  Loop:
       ->+>               Decrease cell 1 and increase cell 0
           2[       ]     Twice do:
             >              Go to the other cell
              q[   ]        If it's prime:
                #:Q         Print the current cell number and quit

0

জুলিয়া 0.6, 64 বাইট

g(x,i)=0∉x%(2:x-1)?1:1+g(x+i,i);x->g(x,1)&(g(x-1,-1)<g(x+1,1))

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