বড় সংখ্যায় প্রধান সংখ্যা


11

একটি বড় সংখ্যা দেওয়া (বেস 10 এ) যেমন 1234567891011121314151617, এতে প্রধান "সাবনের সংখ্যাগুলি" সন্ধান করুন।
একটি প্রাইম "সাবমনবার" হ'ল ডিজিটের ক্রমাগত ক্রম (ইনপুট থেকে নেওয়া), যা একটি মৌলিক সংখ্যা (বেস 10 এ) উপস্থাপন করে।

  • ইনপুট : একটি সংখ্যা (একটি স্ট্রিং, একটি ফাইল বা আপনি যা পছন্দ করেন)।
  • আউটপুট : সমস্ত প্রাইম নাম্বারগুলি কোনওভাবে পৃথক হয়েছে (হয় একটি তালিকা, একটি ফাইল, কমা-বিভাজিত স্ট্রিংগুলিতে ...) ফলাফলটি ফাঁকা থাকলে আপনি পছন্দ মতো যে কোনও কনভেনশন নিতে পারেন (হার্ডকোডযুক্ত স্ট্রিং, খালি স্ট্রিং, গিবারি, তবে প্রোগ্রামটি হওয়া উচিত নয়) বিপর্যস্ত।
  • উদাহরণ
    1234 -> 2, 3, 23
    6542 -> 5, 2
    14 -> [.. খালি আউটপুট]

এটি কোড-গল্ফ। সবচেয়ে স্বল্পতম প্রোগ্রামের জয়!
[সম্পাদনা]: অতিরিক্ত নিয়ম, প্রোগ্রামটি অবশ্যই ব্যাখ্যা করতে হবে! সবাই জেলিতে সাবলীল নয় :)


3
পিপিসিজিতে আপনাকে স্বাগতম!
লুইস ফেলিপ দে জেসুস মুনোজ


1
উল্লিখিত না. আপনার যা ইচ্ছা করুন.
রেজিস পোর্টালেজ

1
টিপ: এটি খুব শীঘ্রই একটি উত্তর গ্রহণ করা হবে; এটি সমাধান পোস্ট করা থেকে অন্যকে নিরুৎসাহিত করতে পারে।
শেগি

2
@ রেজিসপোর্টালিজ স্বাগত, এবং দুর্দান্ত চ্যালেঞ্জ! আমি খুঁজে পেয়েছি যে "গ্রহণযোগ্য" বৈশিষ্ট্যটি আর কোনও নেটওয়ার্কের অন্যান্য সাইটে যেমন হয় তেমনই পিপিসিজে ব্যবহার করা হয় না। আমরা যে কোনও ভাষায় সুন্দর উত্তরগুলির মূল্য দিতে পারি।
এনজিএম

উত্তর:


6

05 এ বি 1 ই (উত্তরাধিকার) , 3 বাইট

Œʒp

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

ইনপুটগুলির সাবস্ট্রিংগুলি যা প্রধান।


এটি আরও ছোট করা কঠিন হবে :)
রেজিস পোর্টালেজ

এই কাজের জন্য সঠিক ভাষা
জোনাথন অ্যালান

5
@ মোব এটি এনকোডিংয়ের উপর নির্ভর করে। ইন 05AB1E এনকোডিং , এই উত্তর 3 বাইট দীর্ঘ।
ডেনিস

2
এর মতে, 34567 = 13 * 2659 টি প্রধান, ভুল বলে মনে হচ্ছে: tio.run/##yy9OTMpM/f//6KRTkwr@/zc2MTUzBwA
frosqh

2
@ ফ্রোসকিহ এটি নতুন 05 এফ 1 ই রিলিজের পি (প্রাইম) ফাংশনের একটি বাগ: tio.run/##yy9OTMpM/f//6KRTkwr@/zc2MTUzBwA এটি ইতিমধ্যে সংগ্রহস্থলটিতে ঠিক করা হয়েছে তবে টিআইও-তে চাপ দেওয়া হয়নি। এর মধ্যে আমি উত্তর উত্তরটি পরিবর্তন করেছি।
কল্ডো

6

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

{grep &is-prime,+«m:ex/.+/}

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

:ex( "সম্পূর্ণ") ম্যাচ অপারেটরের পতাকা mএটি প্রতি সম্ভব ম্যাচ আসতে তোলে .+(অর্থাত, এক বা একাধিক অক্ষর প্রতিটি সাবস্ট্রিং), এমনকি যাদের ওভারল্যাপিং। হাইপারোপরেটর বস্তুগুলির তালিকাটিকে Matchসংখ্যায় পরিণত করে, যা পরে প্রাইমিনিসের জন্য ফিল্টার করা হয় grep &is-prime


এখানে আমি যেতে {+«m:ex/(.+)<?{$0.is-prime}>/}
যাচ্ছিলাম

@ ব্র্যাডগিলবার্ট বিগিলসও আমি চেষ্টা করেছিলাম! আমি কিছুটা হতাশ হলাম এটি দীর্ঘতর হয়ে উঠল।
শান

ব্যাখ্যা করার জন্য ধন্যবাদ - সর্বদা আমার মতো 4 ডাইনোসর পার্লকে সহায়ক!
টবি স্পিড 10

5

ব্র্যাচল্যাগ , 4 বাইট

-1 বাইট ধন্যবাদ ক্রপপেবকে

sᶠṗˢ

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

সব IND substrings, ˢনির্বাচিত তুষার


2
sᶠṗˢএক বাইট খাটো। এটি সমস্ত সাবস্ট্রিংগুলি সন্ধান করে এবং যা প্রধান তা ফিরিয়ে দেয়। এখানে কোডগল্ফ.স্ট্যাকেক্সেঞ্জিং.com
a/

5

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

P=k=1
n=input()
while~n+k:
 if`k`in`n`>0<P%k:print k
 P*=k*k;k+=1

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


while k<=n0 বাইটের দাম বা হওয়া উচিতwhile~n+k
জোনাথন অ্যালান

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

@ জোনাথান অ্যালান আপনি কি whileবিবৃতি থেকে কোডটি ব্যাখ্যা করতে পারবেন ? আমি এই ধরণের কোড আগে দেখিনি। এছাড়াও ` use এর ব্যবহার দেখেনি , এটি কী করে?
টেরিট গোস্বামী

1
@taritgoswami while stmt:ততক্ষণ চলবে যতক্ষণ stmtতার একটি মান রয়েছে যা পাইথন দ্বারা সত্যবাদী বলে বিবেচিত হয়। পাইথনের একমাত্র মিথ্যা পূর্ণসংখ্যা 0। সুতরাং কোড হিসাবে চালানো হবে ~n+k != 0~বিটওয়াইস পরিপূরক অপারেটর, এবং ~nএর সমতুল্য -n - 1~n + k != 0<=> -n - 1 + k != 0<=> k != n + 1। যেহেতু আমরা প্রতিটি ক্রিয়াকলাপের kমাধ্যমে বৃদ্ধি করছি, এক্ষেত্রে সমান । 1k != n + 1k <= n
ovs

1
@taritgoswami এবং পাইথন ২ `n`এর মতোই repr(n)((পাইথন 3 তে কাজ করে না)।
ovs


3

জেলি ,  5  4 বাইট

-1 কেভিন ক্রুইজসেনকে ধন্যবাদ (এটির জন্য একটি নাম ÆP)

ẆḌẒƇ

সংখ্যার একটি তালিকা গ্রহণ করে একটি মোনাডিক লিঙ্ক * যা প্রাথমিক পূর্ণসংখ্যার একটি তালিকা দেয়।

* একটি পূর্ণসংখ্যা নিতে "একটি স্ট্রিং, একটি ফাইল বা আপনি যা পছন্দ করেন তা" দিয়ে যাচ্ছেন, কোডটি একটির সাথে উপসর্গ করুন D

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

কিভাবে?

ẆḌẒƇ - Link: list of integers (digits)   e.g. [1,2,3,4]
Ẇ    - non-empty contiguous substrings        [[1],[2],[3],[4],[1,2],[2,3],[3,4],[1,2,3],[2,3,4],[1,2,3,4]]
 Ḍ   - convert to decimal (vectorises)        [1,2,3,4,12,23,34,123,234,1234]
   Ƈ - filter keep if:
  Ẓ  -   is prime?                            [2,3,23]

ÆPআমি ভুল না হলে হতে পারে ?
কেভিন ক্রুজসেন

হ্যাঁ হ্যাঁ এটি নতুন নতুন একটি নাম - ধন্যবাদ!
জোনাথন অ্যালান

2

জাভা 8, 148 147 বাইট

n->{for(int l=n.length(),i=l,j;i-->0;)for(j=l;j>i;){long k=2,x=new Long(n.substring(i,j--));for(;k<x;x=x%k++<1?0:x);if(x>1)System.out.println(x);}}

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

ব্যাখ্যা:

n->{                     // Method with String parameter and no return-type
  for(int l=n.length(),  //  Length of the input-String
          i=l,j;         //  Temp-integers
      i-->0;)            //  Loop `i` in the range [length, 0)
    for(j=l;j>i;){       //   Inner loop `j` in the range [length, 0)
      for(long k=2,      //    Set `k` to 2
               x=new Long(n.substring(i,j--)
                         //    Take the substring [`i`, `j`) from the input,
            );           //    convert it to a long, and set it as `x`
          k<x;           //    Inner loop as long as `k` is still smaller than `x`
        x=x%k++<1?       //     If `x` is divisible by `k`:
           0             //      Set `x` to 0
          :              //     Else:
           x);           //      Leave `x` unchanged
      if(x>1)            //    If `x` is now larger than 1 (a.k.a. If `x` is a prime):
        System.out.println(x);}}
                         //     Print `x` with a trailing newline to STDOUT


2

বাশ + জিএনইউ মূল উপকরণ: 80 77 বাইট tes

for i in $(seq `tee a|wc -c`)
{
grep -oE .{$i}<a|factor|grep -oP ': \K\d+$'
}

এটি সবচেয়ে স্বল্পতম হতে পারে না, তবে আরও ভাল কিছু নিয়ে আসতে আমার সমস্যা হচ্ছে। সাহায্য চেয়েছিলেন!

কেবলমাত্র পসিক্সকে আটকে রেখে আমি পেয়েছি 82:

for i in $(seq `tee a|wc -c`)
{
grep -oE .{$i}<a|factor|awk -F\  'NF<3{print$2}'
}

বাশ স্ট্রিং কাটা সাহায্য করতে পারে? পরামিতিগুলির আগে এটি একটি লজ্জাজনক ধনুর্বন্ধনী রেঞ্জগুলি প্রসারিত করা হয় ...
টবি স্পাইট

@ টবিস্পাইটের জন্য দুটি লুপের প্রয়োজন হবে (প্রথমটির জন্য একটি, শেষের জন্য একটি), আপনি কাটা বিকল্পটির ভিতরে ভেরিয়েবল ব্যবহার করতে পারবেন না তা উল্লেখ না করে। Zsh এটি অনুমতি দেয়, যদিও! আমার মনে সংকীর্ণতার প্রধান পথ হ'ল সমস্ত সাবস্ট্রিংগুলি তৈরি করতে আওক ব্যবহার করা।
মার্কাসোফটওয়্যার





0

পাইথ, 8 বাইট

fP_TsM.:

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

স্ট্রিং হিসাবে ইনপুট নেয়, পূর্ণসংখ্যার একটি তালিকা আউটপুট দেয়। যোগ করে ইনপুটও নিতে পারেint `অতিরিক্ত বাইটের জন্য শেষে

ব্যাখ্যা:
fP_TsM.:  | Full code
fP_TsM.:Q |  with implicit variables added
          | Print (implicit)
      .:Q |  list of all substrings of the input
    sM    |   converted to integers
fP_T      |    filtered for prime numbers

এবং `কেবল রূপান্তরিত intহয় str


0

ওল্ফ্রাম ভাষা (ম্যাথমেটিকা) , 40 বাইট

Select[PrimeQ@*FromDigits]@*Subsequences

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

ইনপুট এবং আউটপুট হল অঙ্কগুলির তালিকা। কোনও প্রধান সাব্বনারের ক্ষেত্রে খালি তালিকাটি {}ফিরে আসে।

ফাংশন @*জন্য ব্যবহার Compositionকরে। Subsequencesইনপুটটির সমস্ত উপসর্গের একটি তালিকা দেয় এবং Select[PrimeQ@*FromDigits]এটি একটি অপারেটর ফর্ম Selectযা এর জন্য সমস্ত উপাদানগুলির একটি তালিকা PrimeQ@*FromDigitsপ্রত্যাবর্তন করে True


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