ক্ষুদ্রতম এন-ডিজিটের প্রাইম কেবলমাত্র এই অঙ্কগুলি সমন্বিত


26

আপনাকে nঅঙ্কগুলি সহ ছোটতম প্রাইমারি তৈরি করতে হবে এবং এটিতে কেবল তালিকায় নির্দিষ্ট অঙ্কগুলি থাকবে k

উদাহরণ:

ইনপুট:

4
1 2

এর জন্য, আপনাকে অবশ্যই সংখ্যাসূচক ক্ষুদ্রতম প্রাইম উত্পন্ন করতে হবে 4এবং সেই প্রাইমটিতে অবশ্যই অঙ্কগুলি 1এবং থাকতে হবে 2

আউটপুট:

2111

ইনপুট:

10
0 4 7 

আউটপুট:

4000000007

ইনপুট:

6
5 5 5 5 5 5 5 5 5 5 1 5 5 5 5 5 5 5 5 5 5

আউটপুট:

115151

যে আপনি গ্যারান্টি পারেন ইনপুট সবসময় বিন্যাস আপনার নির্দিষ্ট করা থাকবে, এবং আপনি কিছু করতে পারেন যদি আপনি অবৈধ ইনপুট পেতে (যেমন ইনপুট একটি একক অঙ্ক হচ্ছে nছাড়া k।)

যদি কোনও ইনপুট সম্পর্কিত এ জাতীয় কোনও সমাধান উপস্থিত না থেকে থাকে তবে আপনার প্রোগ্রামটিকে নিম্নলিখিতগুলির কোনও একটি করার অনুমতি দেওয়া হয়েছে:

  • ছাপা banana
  • একটি ত্রুটি নিক্ষেপ করুন
  • চিরকালের জন্য চালান
  • আর কিছু

যেহেতু এটি , তাই সংক্ষিপ্ততম কোডের জন্য লক্ষ্য করার চেষ্টা করুন।

ইনপুটটি আপনার নির্দিষ্ট করা কোনও ফর্ম্যাটে থাকতে পারে। উদাহরণস্বরূপ, আপনি যদি নিজের ইনপুটটি নীচের যে কোনও একটির মতো দেখতে চান তবে তা ঠিক।

4
[1, 2]

[1,2]4

1,2
4

4 12

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

হোয়াইটস্পেস যে কোনও জায়গায় অনুমোদিত।

A036229 দ্বারা অনুপ্রাণিত এই চ্যালেঞ্জ ।


2
বাধ্যতামূলক প্রশ্ন: আমরা কোনও বেস ব্যবহার করতে পারি? (
অকারণে

যদি শূন্যটি ইনপুট ডিজিটগুলির মধ্যে একটি হয় তবে কি সমাধানটিতে অগ্রণী জিরো থাকতে পারে?
লুইস মেন্ডো

@ অবৈধ অবশ্যই নয়, আমি মনে করি এটি মানক ফাঁকা আওতায় আসতে পারে (যদি না হয় তবে এটি যুক্ত করা দরকার)
Okx

1
@ লুইস মেন্ডো আমি এটিকে 'যথাযথ' সংখ্যা হিসাবে গণনা করব না, তাই না।
Okx

তালিকাটি কি আক্ষরিক সেট হতে পারে? এবং পূর্ণসংখ্যার পরিবর্তে অক্ষর? (@ xnor এর পাইথন উত্তরগুলি সেগুলি ব্যবহার করছে)
mbomb007

উত্তর:


4

ব্র্যাচল্যাগ (2), 8 বাইট

j₍oᵐ∋ᵐcṗ

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

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

ইনপুটটি ফর্ম্যাটটিতে নেওয়া হয় [ndigits,[list of digits]], যেমন [10,[[0,4,7]]]

ব্যাখ্যা

j₍oᵐ∋ᵐcṗ
j₍        Make a number of copies of the second element equal to the first element
  oᵐ      Sort each (ᵐ) of those copies (evaluation order hint)
    ∋ᵐ    Take one element from each of those copies
      c   Concatenate those elements to form an integer (asserts no leading 0)
       ṗ  producing a prime number

বিশুদ্ধরূপে ঘোষণামূলক দৃষ্টিকোণ থেকে দেখা যায়, এটি বলেছে "প্রদত্ত অঙ্কগুলির সংখ্যার সাথে একটি প্রাথমিক সংখ্যা সন্ধান করুন, যেখানে সমস্ত সংখ্যা প্রদত্ত অঙ্কগুলির মধ্যে একটি"। এই জাতীয়তমতম সংখ্যার সন্ধানের জন্য , আমরা সংখ্যাটি সবচেয়ে ক্ষুদ্র থেকে বৃহত্তর কিনা তা নিশ্চিত করতে আমরা মূল্যায়ন আদেশের ইঙ্গিতগুলি ব্যবহার করি; এই ক্ষেত্রে, তালিকা কম শেষ কাছাকাছি সিদ্ধান্ত চেয়ে পরিবর্তন প্রবণ শুরুর কাছাকাছি সিদ্ধান্ত (এই তার প্রাকৃতিক আদেশ, যা lexicographic হিসাবে একই এবং এইভাবে সংখ্যাসূচক পূর্ণসংখ্যার এ আদেশ হতে হবে), এবং এইভাবে তোলে {o∋}ᵐদুই মূল্যায়ন অর্ডার হয়েছে ইঙ্গিতগুলি, "প্রথমে শেষ কয়েকটি অঙ্কের পরিবর্তিত হয়" ( এর প্রাকৃতিক ক্রম থেকে) আরও গুরুত্বপূর্ণ ইঙ্গিত হিসাবে এবং "বড় অঙ্কগুলির আগে ছোট অঙ্কগুলি পরীক্ষা করুন" (এর oআগে থেকে, যা এই প্রসঙ্গে ইঙ্গিত হিসাবে কাজ করে) টাইব্রেক হিসাবে। বাইট সংরক্ষণ {o∋}ᵐকরার সমতুল্য হিসাবে লেখা যেতে পারে oᵐ∋ᵐ


12

বাশ + বিএসডি-গেমস প্যাকেজ, 28 বাইট

  • 18 বাইটস সংরক্ষণ করেছেন @ ডেনিসকে ধন্যবাদ।
primes 1|egrep -wm1 [$2]{$1}

N হিসাবে কমান্ড-লাইনে প্রদত্ত ইনপুটটি হ'ল অঙ্কের অ-সীমাবদ্ধ তালিকা হিসাবে k এর পরে।

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


9

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

f=lambda n,s,k=1,p=1:10**~-n<p%k*k<s>=set(`k`)or-~f(n,s,k+1,p*k*k)

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

ইনপুট লাগে f(3,{'9','3','8'})

পাইথনের প্রাইমগুলির জন্য কোনও বিল্ট-ইন নেই, সুতরাং ফাংশনটি উইলসনের উপপাদ্যটি ব্যবহার করে তাদের প্রতিটি সম্ভাব্য মানটি kপ্রধান হওয়ার পরিবর্তে পরীক্ষা করার জন্য তৈরি করে ।

শৃঙ্খলিত অসমতা এখানে 10**~-n<p%k*k<s>=set(`k`)তিনটি শর্তের সমন্বয় করে k:

  • 10**~-n<k: kকমপক্ষে nঅঙ্ক রয়েছে । আমাদের আরও সঠিক সংখ্যা যাচাই করার দরকার নেই যেহেতু আমরা আরও সংখ্যায় পৌঁছায়, অবশ্যই কোনও সমাধান হয়নি been
  • p%k>0: kউইলসনের উপপাদ্য কন্ডিশনের মাধ্যমে প্রধান p=(n-1)!^2। যেহেতু p%k0 বা 1, তাই এটি পূর্বের শর্ত হিসাবে একত্রিত হতে পারে10**~-n<p%k*k
  • s>=set(`k`): সমস্ত অঙ্ক kসেট এ আছে s। এটি ছড়িয়ে দেওয়া যেতে পারে কারণ পাইথন 2 সেটগুলি সংখ্যার চেয়ে বড় হিসাবে বিবেচনা করে।

যদি বর্তমান kএই সমস্তটি সন্তুষ্ট না করে তবে ফাংশনটি পুনরাবৃত্তি k+1করে ফলাফল 1 এ 1 যুক্ত করে to আউটপুট বন্ধ সঙ্গে যেহেতু Trueযা সমান 1, এবং kএ শুরু হবে 1, আউটপুট kkপ্রহারের এই সমান্তরাল ট্র্যাকিং kসরাসরি সাফল্যে আউটপুট হয়।


বাহ - উইলসনের উপপাদ্যের দুর্দান্ত ব্যবহার!
চ্যান্ডলার ওয়াটসন

5

জাভাস্ক্রিপ্ট (ES7), 100 বাইট

বাক্য গঠনের ক্ষেত্রে nঅঙ্কের সংখ্যা এবং অনুমোদিত সংখ্যার স্ট্রিং হিসাবে ইনপুট নেয় । কোনও সমাধান না পেলে ফিরে আসে ।s(n)(s)undefined

6 ডিজিট অবধি দ্রুত কাজ করে, 7 এর জন্য কাজ করতে পারে এবং স্পষ্টতই খুব ধীর - এবং ক্ষুধার্ত স্মৃতি - এর বাইরেও।

n=>s=>(a=[...Array(10**n).keys()]).find(i=>eval(`/[${s}]{${n}}/`).test(i)&&a.every(j=>j<2|j==i|i%j))

পরীক্ষা


ঠিক আমি কী করতাম, ভিন্ন ভিন্ন প্রাথমিক পরীক্ষা ছাড়া। আমি দেখতে পাচ্ছি কিভাবে আমার উপায় আপনার সাথে তুলনা করে ...
ETH প্রোডাকশনগুলি

@ এইচটি প্রোডাকশনগুলি আমি একটি পুনরাবৃত্তিমূলক প্রাথমিক পরীক্ষা দিয়ে শুরু করেছিলাম তবে এটি এটিকে 4 ডিজিটের মধ্যে সীমাবদ্ধ রাখতে পারত (বা কিছু ব্রাউজারে আরও কিছুটা বেশি হতে পারে?)
আর্নাউল্ড

পুনরাবৃত্ত সমাধানের জন্য আমার প্রথম চিন্তাটি চারটি বাইট সংক্ষিপ্ত, তবে এটি বৃহত সংখ্যার জন্য একটি ত্রুটি ছুঁড়ে দেয়। আমার ছিলn=>s=>[...Array(10**n).keys()].find(i=>eval(`/[${s}]{${n}}/`).test(i)&(p=j=>i%--j?p(j):j==1)(i))
ইটিএইচ প্রডাকশনগুলি

@ETH প্রোডাকশনস আমিও && এর পরিবর্তে & ব্যবহার করতে প্রলুব্ধ হয়েছিল। তবে পারফরম্যান্স অনুযায়ী এটি খুব ব্যয়বহুল বাইট।
আর্নৌল্ড

আপনি যদি "সক্ষম-জাভাস্ক্রিপ্ট-সম্প্রীতি" পতাকাটি সক্ষম করেন তবে ক্রোমের বর্তমান সংস্করণটি টিসিও সমর্থন করে (কেবল ক্রোম: // পতাকাগুলিতে যান এবং সেই বিকল্পটি সন্ধান করুন)
ETH প্রোডাকশনগুলি

4

জেলি , 12 বাইট

DLׯP
ṗḌÇÐṀṂ

কমান্ড-লাইন আর্গুমেন্ট হিসাবে একটি সেট এবং একটি পূর্ণসংখ্যা নেয়। কোনও সমাধান না থাকলে 0 টি প্রিন্ট করে ।

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

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

ṗḌÇÐṀṂ  Main link. Left argument: A (digit set/array). Right argument: n (integer)

ṗ       Cartesian power; yield all arrays of length n that consist only of elements
        of the array A.
 Ḍ      Undecimal; convert all generated digit arrays to integers.
  ÇÐṀ   Keep only elements for which the helper link returns a maximal result.
     Ṃ  Take the minimum.


DLׯP   Helper link. Argument: k (integer)

D       Decimal; convert k into the array of its base 10 digits.
 L      Take the length.
   ÆP   Test if k is a prime number. Yields 1 or 0.
  ×     Multiply the length and the Boolean.

3

পাইকে, 18 16 বাইট

j;~p#`ljqi`Q-!)h

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

কোনও মান না পাওয়া গেলে চিরকাল চলে


@ ওএক্সএক্স এখন পরীক্ষার সবগুলি ক্ষেত্রে না থাকলে সবচেয়ে বেশি চালানোর পক্ষে দ্রুত হওয়া উচিত
ব্লু

@ ওক্স, আপনি কি জানেন যে আপনি পাইকে ডাউনলোড করতে এবং যদি কোনও সময়সীমা ছাড়াই এটি পুরোপুরি পরীক্ষা করতে চান তবে এটি অফলাইনে চালাতে পারবেন?
নীল

ওহ দুঃখিত. আমি ভেবেছিলাম এটি কোড ছিল। সময়সীমাটি প্রায় চার সেকেন্ডে দেখা যাচ্ছে যা খুব বেশি নয়।
Okx

3

গণিত, 64 বাইট

FirstCase[Tuples@##,x:{f_,___}/;f>0&&PrimeQ[y=FromDigits@x]:>y]&

খাঁটি ফাংশন যেখানে প্রথম যুক্তিটি অনুমোদিত অঙ্কগুলির (সাজানো) তালিকা এবং দ্বিতীয় যুক্তি হ'ল অনুমোদিত দৈর্ঘ্য। Tuples@##অনুমোদিত দৈর্ঘ্যের অনুমোদিত অঙ্কগুলির সমস্ত তালিকাগুলি গণনা করে, তারপরে আমরা খুঁজে পাই যে FirstCaseকোনটি এর সাথে মেলে যা x:{f_,___}প্রথম সংখ্যাটি fনয় 0এবং পূর্ণসংখ্যাটি y=FromDigits@xপ্রধান হয় এবং এটির সাথে প্রতিস্থাপন করে y


2
এটি দুর্দান্ত আপনি কীভাবে /;একটি টিপল নির্বাচন করতে পরীক্ষাকে ব্যবহার করেন তবে :>পছন্দসই আউটপুট বিন্যাসে রূপান্তর করেন। (আমি অনুমতি পেয়েছি এমন ডকুমেন্টেশনে দেখছি, তবে কেবল এই উত্তরটি পড়ার পরে!) আপনার নির্দিষ্ট করা উচিত যে আপনার ফাংশনটির জন্য অনুমোদিত অঙ্কগুলি বাছাই করা দরকার: এটি যদি ডাকা হয় তার 3331পরিবর্তে ভুল উত্তর দেয় । 3313[{3,1},4]
গ্রেগ মার্টিন

@ এঞ্জেনিস কিভাবে Select[FromDigits/@Tuples[Sort@#,#2],PrimeQ][[1]]&@@#&?
মার্টিন

@ মার্টিন যে টিপলস শুরু হয় 0এবং এটি নিষ্প্রয়োজনীয় বলে মনে হয় না @@#&
নেজিনিসিস

@ এনজেনিসিস দুঃখিত - এটির জন্য অ্যাকাউন্ট করেননি
মার্টিন


2

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

কারিঙ সিনট্যাক্সের মাধ্যমে ইনপুট নেয়, যেমন, (4)('12')

n=>(d,F=(i,P=j=>i%--j?P(j):1==j)=>P(i)&&`${i}`.match(`^[${d}]{${n}}$`)?i:F(i+1))=>F(2)

'use strict';

const G=n=>(d,F=(i,P=j=>i%--j?P(j):1==j)=>P(i)&&`${i}`.match(`^[${d}]{${n}}$`)?i:F(i+1))=>F(2)

const submit = () => {
  console.clear();
  console.log(G(+n.value)(d.value));
}

button.onclick = submit;
submit();
<input id="n" type="number" min="1" value="4" />
<input id="d" type="text" value="12" />
<button id="button">Submit</button>

কঠোর মোডে চালানো ( টেল কল অপ্টিমাইজেশনের জন্য [টিসিও] )। যদি আপনার পরিবেশ টিসিও সমর্থন করে না তবে এটি পরিবেশের স্ট্যাকের চেয়ে বড় প্রাইমগুলির জন্য স্ট্যাক ওভারফ্লো ত্রুটির কারণ হবে।

অবৈধ ইনপুটগুলির জন্য এটি চিরকাল চলবে।

বিঃদ্রঃ:

  • ক্রোম (> = 51) ব্যবহারকারীরা chrome://flags/#enable-javascript-harmonyটিসিও সমর্থন সহ উপরের স্নিপেটটি চালাতে এই পতাকাটি সক্ষম করতে এবং সক্ষম করতে পারেন ।
  • সাফারি (> = 10) টিসিও সমর্থন করে

আমি মনে করি আপনি দুটি বাইট সংরক্ষণ করতে পারবেনF=i=>(P=j=>i%--j?P(j):1==j)(i)&&...
ETH প্রডাকশনগুলি

@ ইথ প্রডাকশনগুলি কারণ এটি কঠোর মোডে চালাতে হবে (স্ট্যাক ওভারফ্লো এড়াতে) এবং এটি একটি বিশ্বব্যাপী পরিবর্তনশীল পি তৈরি করতে পারে না
জর্জ রিথ

ওহ, আমি বুঝতে পারি না টিসিও কেবলমাত্র কঠোর মোডে প্রয়োগ হয়েছিল।
ETH প্রোডাকশনগুলি

@ এথ প্রডাকশনগুলি আয়ে আমি না জেনেছি যতক্ষণ না আমি এক্সড পোস্ট করেছি আমার উত্তরটির প্রথম প্রকরণটি আমার শর্টকাটটি অবৈধ না হওয়া অবধি ব্যবহার করেছিল না।
জর্জ রিথ

2

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

wlwX"1GXNUStZp)l)

এই ফাংশনটি দুটি ইনপুট গ্রহণ করে, একটি পূর্ণসংখ্যার সংখ্যা নির্দিষ্ট করে এবং একটি অক্ষরের অ্যারে সম্ভাব্য মানগুলি নির্দেশ করে character প্রাইমগুলির ক্ষেত্রে একটি ত্রুটি দেখানো হয়।

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

ব্যাখ্যা

        % Implicitly grab two inputs. First as an integer (N), second as a string (OPTS)
w       % Reverse the order of the inputs
l       % Push the literal 1 to the stack
w       % Pull N back to the top of the stack
X"      % Repeat OPTS N times 
1G      % Explicitly grab N again
XN      % Get all N-character combinations of the repeated version of OPTS
U       % Convert each row from a string to a number
S       % Sort them in ascending order
tZp)    % Grab only those that are primes
l)      % Retrieve the first prime
        % Implicitly print the result


2

সেজ, 62 বাইট

lambda l,d:[p for p in primes(10^(l-1),10^l)if set(`p`)<=d][0]

ফর্মটির ইনপুট নেয়: f( 4 , {'1','2'} )


1

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

->\n,@k {first *.is-prime&/^@k**{n}$/,^∞}

কোনও সমাধান না থাকলে চিরকাল চলে।


ইনপুট ফর্ম্যাট কি?
Okx

1
@ অক্স: এটি একটি ল্যাম্বডা যা দুটি যুক্তি গ্রহণ করে: একটি সংখ্যা এন এবং একটি তালিকা কে।
স্মিল


1

05 এ বি 1 ই , 22 19 18 বাইট (-1 @ রিলে)

[NØ©S¹Kg0Q®g²Q&i®q

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

[                   # infinite loop.
 NØ©                # push nth prime.
    S¹Kg0Q          # see if, without banned digits, it's 0 length.
          ®g²Q&     # see if, it is originally also the length specified.
               i®q  # if true, print result and exit.

1
আমি ,শেষ পর্যন্ত আপনার প্রয়োজন হবে বলে মনে করি না ।
রিলে

@ রিলে সুন্দর কল!
যাদু অক্টোপাস উরন

0

পার্ল 5, 77 বাইট

($n,$d)=@ARGV;/^[$d]{$n}$/&&("x"x$_)!~/^(..+?)\1+$/&&print&&die for 2..10**$n

এভাবে চালান:

perl -le '($n,$d)=@ARGV;/^[$d]{$n}$/&&("x"x$_)!~/^(..+?)\1+$/&&print&&die for 2..10**$n' 4 12

0

রুবি, 77 76 বাইট

->n,l{(10**~-n..10**n).find{|n|(2...n).none?{|x|n%x<1}&&!n.to_s[/[^#{l}]/]}}

ইনপুট ফর্ম্যাট: একটি সংখ্যা এবং একটি স্ট্রিং।

উদাহরণ:

->n,l{...see above...} [6,"555555555515555555555"]
=> 115151

0

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

->\n,\k{first {.is-prime&&/.**{n}/},+«[X~] 0,|(k.unique.sort xx n)}

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

Nilএরকম কোনও প্রধানের সন্ধান না পেলে ফিরে আসে ।

সম্প্রসারিত:

->
  \n, # number of digits
  \k  # list of digits
{

  first

    {
        .is-prime
      &&
        / . ** {n} / # exactly 「n」 digits ( in case 「k」 has a 0 )
    },

    \          # turn the following into a list of numbers

    [X[~]]       # cross the following with &infix:<~>

    0,           # append a 0 in case 「n」 was 1
    |(           # slip this list in (flatten)

        k        # the input list of possible digits
        .unique  # only one of each to reduce the search space (optional)
        .sort    # sort it so that the cross meta op returns them sorted

      xx         # list repeat

        n        # 「n」 times
    )
}

0

পাইথন 2 + প্রাইমফ্যাক , 91 85 বাইট

import primefac as P
n,k=input()
p=10**~-n
while set(`p`)!=k:p=P.nextprime(p)
print p

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

ইনপুট মত 4,{'1','2'}


1,{'1'}কোনও বৈধ ইনপুট নয় (কারণ 1 প্রাইম নয়), তাই আপনি সেখানে যা পছন্দ করতে পারেন তা করতে পারেন।

হ্যাঁ সঠিক. ধন্যবাদ।
mbomb007

0

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

for($n=10**--$argv[1];$i-1||a&trim($n,$argv[2]);)for($i=++$n;--$i&&$n%$i;);echo$n;

কমান্ড লাইন আর্গুমেন্ট থেকে একটি সংখ্যা এবং অঙ্কের একটি স্ট্রিং নেয়। সাথে চালাও -nr

ভাঙ্গন

for($n=10**--$argv[1];  // $n = smallest number with (argument1) digits
    $i-1||                  // loop while $n is not prime or
    a&trim($n,$argv[2]);    // $n without all digits from (argument2) is not empty
)
    for($i=++$n;--$i&&$n%$i;);  // $i=largest divisor of $n smaller than $n (1 for primes)
echo$n;                 // print

0

জাভা 7, 139 141 বাইট

long c(int a,String b){for(long n=2,i,x;;n++){for(x=n,i=2;i<x;x=x%i++<1?0:x);if(x>1&(n+"").length()==a&(n+"").matches("["+b+"]+"))return n;}}

32-বিটের উপরে সংখ্যাগুলি সমর্থন করে +2 বাইট (এতে পরিবর্তন intহয়েছে long)

ইনপুট ফর্ম্যাট: একটি পূর্ণসংখ্যা (ie 4) এবং একটি স্ট্রিং (ie "12")

ব্যাখ্যা:

long c(int a, String b){                  // Method with the two input parameters specified above
  for(long n = 2, i, x; ; n++){           // Loop from 2 going upwards
    for(x = n, i = 2; i < x; x = x % i++ < 1 ? 0 : x);  // Prime check for `n` 
    if (x > 1                             // if `n` is a prime (if `x` > 1 after the loop above it means `n` is a prime)
         & (n+"").length() == a           // AND if `n` has a length equal to the input integer
         & (n+"").matches("["+b+"]+")){   // AND if `n` only contains the specified digits of the input String (using a regex)
      return n;                           // Then we have our answer
    }
  }                                       // If no answer is available for the given input, it continues looping
}

পরীক্ষার কোড:

এখানে চেষ্টা করুন।
দ্রষ্টব্য: দ্বিতীয় পরীক্ষার কেসটি অক্ষম করা হয়েছে কারণ এটি খুব দীর্ঘ সময়ের জন্য লুপ করে ..

class M{
  static long c(int a,String b){for(long n=2,i,x;;n++){for(x=n,i=2;i<x;x=x%i++<1?0:x);if(x>1&(n+"").length()==a&(n+"").matches("["+b+"]+"))return n;}}

  public static void main(String[] a){
    System.out.println(c(4, "12"));
    //System.out.println(c(10, "047"));
    System.out.println(c(6, "555555555515555555555"));
  }
}

আউটপুট:

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