প্রথম এক্স পুরস্কারগুলির মধ্যে অ্যাডেটিভ পুরষ্কার


16

অ্যাডেটিভ পুরষ্কার সংজ্ঞা:

  • যে সংখ্যাগুলিতে ঠিক 2 বিভাজক থাকে তাদের প্রধান বলা হয় সংখ্যা ।

  • যে সংখ্যাগুলি প্রধান এবং তাদের অঙ্কগুলির যোগফলগুলিও একটি প্রাথমিক সংখ্যা যাকে অ্যাডিটিভ প্রাইমস বলে


টাস্ক:

একটি পূর্ণসংখ্যা দেওয়া হয়েছে , সাথে xপ্রথম প্রাথমিক xসংখ্যাগুলির মধ্যে সমস্ত অ্যাডিটিভ প্রাইমগুলি গণনা করুন2 প্রাথমিক এবং সংযোজক উভয় প্রাথমিক হিসাবে বিবেচিত হবে। সংখ্যাগুলি বেস 10 তে প্রতিনিধিত্ব করা হয়।

নিয়মাবলী:

  • আউটপুটটিতে প্রথম xপ্রাইমগুলির মধ্যে সমস্ত অ্যাডিটিভ প্রাইম থাকে
  • 0 < x < 151, এই চ্যালেঞ্জের জন্য, কার্যকারিতা উদ্দেশ্যে
  • অ্যাডিটিভ প্রাইমগুলি যেহেতু সমস্ত পূর্ণসংখ্যা তাই দশমিকগুলি অনুমোদিত নয় (যেমন: আপনার আউটপুট করা উচিত 2, না 2.0) এবং সেগুলি অবশ্যই ভগ্নাংশ হিসাবে প্রদর্শিত হবে না।

উদাহরণ:

10 -> 2 3 5 7 11 23 29

ব্যাখ্যা:

প্রথম 10 টি প্রাইমগুলি হ'ল 2 3 5 7 11 13 17 19 23 29এবং কেবলমাত্র 2 3 5 7 11 23 29তাদের সংখ্যার মৌলিক সংখ্যাগুলি যথাক্রমে রয়েছে 2,3,5,7,2,5,11, সুতরাং তারা সংযোজনীয় মৌলিক

থেকে ব্যাখ্যা অনুসরণ করে example 1, অন্যান্য পরীক্ষার মামলাগুলি হতে পারে:

2 -> 2 3

25 -> 2 3 5 7 11 23 29 41 43 47 61 67 83 89

7 -> 2 3 5 7 11

লিডারবোর্ড:


দ্রষ্টব্য: দয়া করে সদ্য সম্পাদিত নিয়ম 1 টি পড়ুন, এটি আউটপুট বিন্যাসে কিছুটা পরিবর্তন আনবে


আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত হওয়া উচিত, যেহেতু এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তরটি জেতে। শুভকামনা!


সেটা ঠিক আছে. আমি যদিও প্রায় 24 ঘন্টা অপেক্ষা করার পরামর্শ দিচ্ছি, কারণ প্রতিবার আপনি উত্তরটি গ্রহণ করলে তারা 15 টি প্রতিনিধি পান, তবে আপনি এটি স্বীকার না করলে তারা তা হারাবেন। কখনও কখনও রোলারকোস্টারে চলা এবং ক্রমাগত হারাতে এবং খ্যাতি অর্জন করা কিছুটা হতাশার।
আর

উত্তর:


8

পাইকে, 9 7 বাইট

~p>#Yss

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

একক বাইটটি কেবল is_prime3 ঘন্টা আগে ঠেলাঠেলি করা হয়েছিল। গিথুব কমিট

~p      -    All the prime numbers
  >     -   first input of them
   #Yss -  filter(^)
    Y   -     digits(^)
     s  -    sum(^)
      s -   is_prime(^)

3
আপনি কি এই চ্যালেঞ্জটি অনুসারে আপনার ভাষাটি সম্পাদনা করেছেন? : ডি
ডুরিস

সুতরাং ... sমানে_সংখ্যার উপর প্রাইম, এবং তালিকাগুলিতে যোগফল?
কনার ও'ব্রায়ান

@ কনরও ব্রায়েন হ্যাঁ, আমি তালিকা এবং পূর্ণসংখ্যার জন্য এটি ওভারলোড করেছি
নীল

@ ডিউরিস না, আমি কিছুক্ষণের জন্য অর্থপূর্ণ ছিলাম কারণ আমার কাছে প্রাইম চেকিংয়ের জন্য একটি নোড নেই, কেবল প্রাইমস এবং ডিভোজারগুলিকে ফ্যাক্টরিজ করে। এর আগে আমার _Pযা করতে হবে যা এই ক্ষেত্রে 1 বাইট বেশি দীর্ঘ
ব্লু

1
"চ্যালেঞ্জ জিততে কনিষ্ঠতম ভাষার বৈশিষ্ট্য" এর জন্য নতুন প্রতিযোগী? তারের নীচে hours 2 ঘন্টা?
স্পার

8

পাইথন 2, 124 118 বাইট

রিকার সাহায্যে:

n,f,P=input(),filter,lambda n:all(n%i for i in range(2,n))
f(lambda x:P(sum(map(int,`x`)))&P(x),f(P,range(2,n*n))[:n])

মূল:

n,o,c,P=input(),0,2,lambda n:all(n%i for i in range(2,n))
while o<n:
 o+=P(c)
 if P(sum(map(int,`c`)))and P(c):print c
 c+=1

পাইথনে প্রাথমিকতা পরীক্ষা করা মজাদার নয়।


আমি (পড়ুন: আমার জন্য শীতল জে কোড লিখতে কনর পেয়েছি) এটি 9n দিয়ে পরীক্ষা করেছে, কাজ করে না। : / n ** 2 কাজ করে তবে 1 বাইট ব্যয়ে।
Rɪᴋᴇʀ


8

রাদা , 136 135 বাইট

f n{P=[2]S=[2]seq 3,863|{|i|{P|{P+=i;s=0;((""..i)/"")|parseInteger _|s+=_;S+=i if[s in P and not(i in S)]}if{|p|[i%p>0]}_}if[#P<n]}_;S}

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

এটি একটি ফাংশন যা অনুরোধক অ্যাডিটিভ প্রাইমগুলি প্রদান করে।

ব্যবহার: main { f(25) | print ap for ap }কোডটি 0.12 সংস্করণ ব্যবহার করে, যা শাখায় রয়েছে roda-0.12

Ungolfed:

function f(n) {
    primes := [2]
    ultraprimes := [2]
    seq(3, 863) | for i do
        break if [ #primes = n ]
        if [ i%p != 0 ] for p in primes do
            primes += i
            sum := 0
            ((""..i)/"") | parseInteger _ | sum += digit for digit
            ultraprimes += i if [ sum in primes and not (i in ultraprimes) ]
        done
    done
    ultraprimes
}

1
দুর্দান্ত ভাষা! আপনি নিজেকে এটি তৈরি করেছেন অনেক দিন আগে দেখে মনে হচ্ছে? 10/10, দেখতে খুব সুন্দর লাগছে।
আর

ঝরঝরে ভাষা! আপনি কীভাবে প্রোগ্রামটি চালাবেন?
ক্রিটসি লিথোস

ঠিক একই জিনিস জিজ্ঞাসা ছিল। যদিও আমি ডকুমেন্টেশনটি সন্ধান করেছি, আমি উত্সটি চালাতে বা সংকলন করতে পারি না। আপনার পদ্ধতির কি?
মিঃ এক্সকোডার

@ ক্রিটিক্সিলিথস @ এক্সকোডার 123 এর জাভা 8 এবং গ্রেডল প্রয়োজন। এই উত্তরে আমি যে সংস্করণটি ব্যবহার করি তা 0.12 (নিজস্ব শাখায়)। সংগ্রহস্থল পুনরাবৃত্তভাবে ক্লোন করা আবশ্যক। একটি চলমান বয়াম তৈরি করতে, অনুরোধ gradle fatJar। সংকলনের সময় আপনি কি কোনও ত্রুটি পেয়েছেন?
ফার্গুসক

@fergusq চালানো gradle fatJarআমার জন্য কোনও জার তৈরি বলে মনে হচ্ছে না
ক্রিটসি লিথোস

5

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

{grep *.comb.sum.is-prime,grep(*.is-prime,0..*)[^$_]}

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

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

{
  grep
    *.comb.sum.is-prime, # find the ultra primes from:
    grep(
      *.is-prime,        # find the primes
      0..*               # from all integers
    )[ ^$_ ]             # grab only the first x primes
}

যদি এই চ্যালেঞ্জটি এমনভাবে পরিবর্তন করা হয় যাতে আপনি প্রথম এক্স আল্ট্রাপ্রাইম গ্রহণ করেন তবে এটি কেবল সংক্ষিপ্ত করা যেতে পারে

{grep({($_&.comb.sum).is-prime},0..*)[^$_]}

5

পাইথন 2 , 96 87 বাইট

p=-input(),0;m=k=1
while sum(p):
 m*=k*k;k+=1;p+=m%k,
 if m%k*p[int(`k`,36)%35]:print k

9x বাইট অফ গল্ফ করার জন্য @ এক্সনরকে ধন্যবাদ!

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


দেখে মনে হচ্ছে যে সূচক ভেরিয়েবলগুলির একটি তালিকা ব্যবহার করা সংক্ষিপ্ত।
xnor

অঙ্কের যোগফলটি আরও ছোট করা যায় int(`k`,36)%35। সমস্ত ইনপুট যথেষ্ট ছোট হবে যা এটি যথেষ্ট।
xnor


কি দারুন! আমি নিশ্চিত না যে আমি কীভাবে বুলিয়ান ডিকের কথা ভেবেছিলাম কিন্তু বুলিয়ান টিপল নয় (হ্যান্ডসাইটটি 20/20), কিন্তু sum(p)এবং int(`k`,36)%35অন্য কিছু ... ধন্যবাদ!
ডেনিস

5

গণিত, 61 47 বাইট

Prime@Range@#~Select~PrimeQ@*Tr@*IntegerDigits&

গাণিতিকের শর্টহ্যান্ড সিনট্যাক্সের সাথে পুরোপুরি পরিচিত নয় - এটি কী @*? *দেখাচ্ছে না মত সঠিক জায়গায় আছে গুণ হতে?
নম্বরমানিয়াক

3
@ Numbermaniac এটি ফাংশন রচনা। f@*gমূলত হয় f@g@##&
মার্টিন ইন্ডার

4

জেলি , 10 বাইট

ÆNDS$€ĖÆPM

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

কিভাবে?

কিছুটা ভিন্ন পদ্ধতির ...

ÆNDS$€ĖÆPM - Main link: n (>0)           e.g. 10
ÆN         - nth prime number                 29
     €     - for each in range(1,nth prime)   [1,    2,    3,   ..., 27,    28,     29]
    $      - last two links as a monad
  D        -     decimal digit list          [[1],  [2],  [3],  ...,[2,7], [2,8],  [2,9]]
   S       -     sum                          [1,    2,    3,   ..., 9,     10,     11]
      Ė    - enumerate                       [[1,1],[2,2],[3,3],...,[9,27],[10,28],[11,29]]
       ÆP  - is prime? (vectorises)          [[0,0],[1,1],[1,1],...,[0,1], [0,0],  [1,1]]
         M - indices of maximal elements     [       2,    3,   ...,                29]

3
ভাল ব্যবহার Ė
ডেনিস


3

জেলি , 11 বাইট

ÆN€DS$ÆP$Ðf

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

ব্যাখ্যা:

LinkN € DS $ ÆP $ Main মূল লিঙ্ক (নিবন্ধসমূহ: z)
€N first প্রথম জেড প্রাইমগুলি উত্পন্ন করুন।
   ডিএস $ ডিজিটাল যোগফলটি নিন।
      Primeপি এটি প্রধান কিনা তা পরীক্ষা করুন Æ
        Last শেষ দুটি লিঙ্কে যোগ দিন এবং একটি মোনাদ তৈরি করুন।
         শুধুমাত্র উপরের মানদণ্ডের সাথে সঙ্গতিপূর্ণ উপাদানগুলি রাখুন।

আমি আউটগল্ফড হয়ে গেলাম।


2

এমএটিএল, 15 13 বাইট

2 লাইট সংরক্ষণ করেছেন লুইসকে ধন্যবাদ

:Yq"@V!UsZp?@

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

ব্যাখ্যা

        % Implicitly grab input as a number (N)
:       % Create an array [1...N]
Yq      % Get the k-th prime for each element k in that array
"       % For each element in this list
  @     % Get the current element
  V!U   % Break it into digits
  s     % Sum up the digits
  Zp    % Determine if this is a prime number
  ?@    % If it is, push the value to the stack
        % Implicit end of for loop and implicit display of the stack

@ লুইস মেন্ডো আহ! আমি জানতাম যে প্রথম অংশটি ছোট করার কিছু উপায় আছে। ধন্যবাদ
স্যুভার


1

ওহম , 10 বাইট (সিপি 437)

@▓_π;░_}Σp

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

ব্যাখ্যা:

@▓_π;░_}Σp    Main wire, arguments: a

@▓  ;         Map...over the range (1..n)
  _π            nth prime
     ░        Select from ToS where...
      _}Σ       The sum of all digits
         p      is prime

1

পাওয়ারশেল , 120 বাইট

for($n=$args[0];$n){for(;'1'*++$i-notmatch($s='^(?!(..+)\1+$)..')){}if('1'*([char[]]"$i"-join'+'|iex)-match$s){$i};$n--}

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

পাওয়ারশেলের প্রাইম চেকিং সফল হয়।

বাইরের forলুপটি ইনপুট থেকে $nনীচে চলে যায় 0। অভ্যন্তরীণ লুপে, আমরা একটি প্রাইম জেনারেটর চালু করি $i, তারপরে ifঅঙ্ক-সমষ্টি ( -join'+'|iex)টিও একটি প্রধান check যদি তা $iহয় তবে আমরা পাইপলাইনটি রেখেছি। উভয় ক্ষেত্রেই, আমরা হ্রাস পেয়েছি $n--এবং বাইরের forলুপটি অবিরত রয়েছে। ফলাফলগুলি $iপাইপলাইন থেকে সংগ্রহ করা Write-Outputহয় এবং প্রোগ্রামের সমাপ্তিতে একটি অন্তর্নিহিত ঘটে।



0

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

:YqtFYA!XsZp)

এমএটিএল অনলাইনে এটি ব্যবহার করে দেখুন !

ব্যাখ্যা

:      % Range [1 2 ... n], where n is implicit input
Yq     % Array of first n prime numbers
t      % Duplicate
FYA    % Convert to decimal digits. Gives a matrix, where each original 
       % number corresponds to a row. Left-pads with zeros if needed
!Xs    % Sum of rows
Zp     % Is prime? (element-wise)
)      % Use as logical index into the array of the first n prime numbers
       % Implicitly display
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.