আপনার কোডটি প্রাইম আপ করুন


37

ইনপুট

এই চ্যালেঞ্জের জন্য কোনও ইনপুট নেই

চ্যালেঞ্জ

আউটপুট করে এমন একটি কোড লিখুন:
প্রথম 10 টি মৌলিক সংখ্যা যার অঙ্কগুলির সমষ্টি আপনার কোডের বাইটের সংখ্যার সমান

উদাহরণ

ধরা যাক আপনার কোডটি Co&%423@k"oo"যা 13 bytes
আপনার কোড তা অবশ্যই [67, 139, 157, 193, 229, 283, 337, 373, 409, 463]
প্রথম 10 টি প্রাথমিক সংখ্যা যার আউটপুট অবশ্যই হবে .... ঠিক আছে আপনি পেয়েছেন!

যদি আপনার কোড হয় তবে 8 bytesআপনাকে অবশ্যই আউটপুট দিতে হবে[17, 53, 71, 107, 233, 251, 431, 503, 521, 701]

বিধি

আপনাকে কেবলমাত্র প্রথম 10 ^ 8 টি মৌলিক সংখ্যা ব্যবহার করতে হবে
যার অর্থ আপনার সমস্ত নম্বর অবশ্যই হতে হবে <2038074743 = 10 ^ ম 8 ম প্রধান

আপনার বাইটগুলির সাথে মানানসই এই সীমাটিতে যদি আপনি 10 টি প্রাইম সংখ্যা খুঁজে না পান তবে একটি " কার্যকারী সংখ্যা বাইট " সন্ধান করতে আপনাকে আপনার কোডটি সামঞ্জস্য করতে হবে (আপনাকে কিছু বাইট যোগ করতেও হতে পারে!)

শুধু আউটপুট 10 মৌলিক তোমাকে পছন্দ করি কোন ভাবেই

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়!


1
মন্তব্য সম্পাদনা করতে পারছি না তাই আমি কেবল মুছে ফেলছি এবং পুনরায় পোস্টিং করছি: এখানে প্রদত্ত প্রাইমগুলি সম্বলিত একটি সংক্ষিপ্ত বিবরণ যা আপনাকে প্রদত্ত বাইকোয়ান্টের পাশাপাশি তাদের সূচকগুলির জন্য আউটপুট করতে হবে: লিঙ্ক যেহেতু আমি এটি নির্বাকভাবেই করেছি, আমি কেবল পরিমাণগুলি অনুসন্ধান করেছি প্রথম 10 ^ 7 প্রাইমগুলিতে। কিছু উত্তরের বর্ণনার মতো, এমন কিছু অনুপস্থিত মান রয়েছে যা সম্ভবত অ্যাক্সেসযোগ্য ডিজিটাল রাশির সাথে সম্পর্কিত, যদিও বড় অঙ্কের ক্ষেত্রে এটি নাও হতে পারে (মনে রাখবেন, আমি কেবল প্রথম 10 ^ 7 প্রাইমগুলি পরীক্ষা করেছিলাম)।
কোলে

"আপনার পছন্দের কোনও উপায়ে" : প্রাইমগুলিকে অর্ডার দেওয়ার দরকার কি?
আর্নল্ড

@ আরনাউল্ড না, তবে যে কোনও ক্রমে

1
@ কেভিন ক্রুজসেন যদিও আপনার উত্তরটি অবৈধ তবে আপনাকে আরও ভাল উত্তর খুঁজে পেতে সহায়তা করার জন্য অন্যান্য সদস্যদের সাথে আলোচনা করার জন্য এটি পোস্ট করার জন্য আপনাকে স্বাগতম।

1
@ টেসেল্লাটিংহেকলার আমারও মনে হয় 10 ^ 8 এর কাটফটি বরং স্বেচ্ছাচারী। প্রদত্ত দশটি সংখ্যার মোট অঙ্কের 350 টি এবং সমস্ত প্রাইম রয়েছে তা যাচাই করতে দ্রুত হওয়া উচিত। যাইহোক, এই দশটি সত্যই যে সবচেয়ে ছোট সম্ভব তা যাচাই করা, আরও কঠিন হতে পারে বলে আমার ধারণা।
জেপ্প স্টিগ

উত্তর:


15

নিম , 10 8 7 বাইট

-1 বাইট শুধুমাত্র এএসসিআইআই-কে ধন্যবাদ।

πᛦ𝐋Λ𝐬7𝔼

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

আউটপুট:

[7 43 61 151 223 241 313 331 421 601]

এটি (ভাল, কমপক্ষে পদ্ধতির) অবাস্তব is

ব্যাখ্যা

πᛦ𝐋Λ𝐬7𝔼

π        push 13 (yes, very unintuitive :P)
 ᛦ       square (13² = 169)
  𝐋      push the first 169 primes
   Λ     filter those that when the following are executed, evaluate to 1
    𝐬    sum its digits and...
     7𝔼  check for equality against 7

2
এখন পর্যন্ত সেরা .. !!!

νᛦ𝐋Λ𝐬7𝔼7 এর জন্য ... সম্পাদনা করুন: π-> ν: পি
জোনাথন অ্যালান

@ জোনাথান অ্যালান মনে হয় আপনি কেবল এএসসিআইআই-এর দ্বারা নিঞ্জানা করেছেন। ;)
সম্পূর্ণমানবিক

বাহ আসলেই প্রথম এন প্রাইমগুলিকে ধাক্কা দেওয়ার কোনও নির্দেশনা আছে? ঝরঝরে!
isaac9A

9

জেলি , 14 বাইট

‘ÆNDS=14ø⁵#‘ÆN

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

এই মুদ্রণ:

[59, 149, 167, 239, 257, 293, 347, 383, 419, 491]

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

‘ÆNDS=14ø⁵#‘ÆN
          #     Count the first 
         ⁵        10
                Non-negative integers which meet:
‘ÆN               the (z+1)-th prime  (1-indexed :*()
   D              digits
    S             sum
     =            equals
      14          14
           ‘ÆN  Get those primes

8
prime প্রাইমগুলি পেতে!
আন্ডারগ্রাউন্ডোমোনাইল

6

পাইথ , 14 বাইট

.f&qsjZT14P_ZT

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

এটি 14 বাইট এবং প্রিন্ট:

[59, 149, 167, 239, 257, 293, 347, 383, 419, 491]

পাইথ , 16 বাইট

.f&qssM`Z16P_ZTZ

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

নোট করুন যে এটি 15 বাইট হতে পারে: .f&qssM`Z16P_ZTZতবে কোনও সংখ্যক প্রাইম নেই যেগুলি তাদের সংখ্যার যোগফল হিসাবে 15 আছে, যেহেতু 15দ্বারা বিভাজ্য 3, যা বোঝায় যে সংখ্যাটি দ্বারা বিভাজ্য হবে 3, তাই প্রধান নয়।

এটি 16 বাইট দীর্ঘ এবং প্রিন্ট:

[79, 97, 277, 349, 367, 439, 457, 547, 619, 673]

কিভাবে?

ব্যাখ্যা ঘ

.f&qsjZT16P_ZT - Full program.

.f&           T  - First 10 numbers that satisfy the following:

           P_Z     - Are prime and
    sjZT           - And their sum of digits
   q     14        - Equals 14.

ব্যাখ্যা ২

.f&qssM`Z16P_ZTZ - Full program.

.f&           T  - First 10 numbers that satisfy the following:

           P_Z     - Are prime and
    ssM`Z          - And their sum of digits
   q     16        - Equals 16.

1
সাবাশ! এবং দ্রুত!

"খুব অল্প সংখ্যক প্রাথমিক সংখ্যার সাথে তাদের সংখ্যার যোগফল হিসাবে 15 রয়েছে" - প্রকৃতপক্ষে, কারণ 3 দ্বারা বিভাজ্য একটি অঙ্কের অঙ্কটি 3 দ্বারা বিভাজনকে বোঝায়
লিন

@ লিন ওহ নিশ্চিত> _> - আমি বোবা, দুঃখিত। স্থির
জনাব এক্সকোডার

6

হুশ , 13 বাইট

↑10fȯ=13ΣdfṗN

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

ব্যাখ্যা

            N    Take the (infinite) list of all natural numbers.
          fṗ     Select only the primes.
   fȯ            Filter again by the result of composing the following three functions:
         d         Get the decimal digits.
        Σ          Sum them.
     =13           Check whether the sum equals 13.
↑10              Take the first 10 primes in the result.

এটি প্রায় 10 টি বাইটে গল্ফ করেছে তবে ফলাফলগুলির মধ্যে একটিটি
লিও

@ লিও হি, যদি এটি কাজ করে তবে খুব ঝরঝরে হবে :)
মার্টিন এন্ডার

6

হাস্কেল , 77 71 বাইট

x=take 10[i|i<-[1..],sum(read.pure<$>show i)==71,all((>0).rem i)[2..i-1]]

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

লাইকোনি ধন্যবাদ 6 বাইট সংরক্ষণ করা

71 বাইটের জন্য:

[89999999,99899999,99998999,99999989,189989999,189998999,189999989,197999999,199898999,199979999]

আপনার সমস্ত নম্বর অবশ্যই <2038074743

1999999999 অনুমোদিত সংখ্যাতে সর্বাধিক অঙ্কের সংখ্যার সাথে সংখ্যা এবং সেই পরিমাণটি 82। আমি আশা করি 77 77 বাইট ঠিক আছে, তবে আমি জানি না (এটি এখনও আমার কম্পিউটারে চলছে)।

সম্পাদনা: 77 বাইটের জন্য কিছুটা অনুকূলিত সংস্করণ দেওয়া হয়েছে:

[699899999,779999999,788999999,789999989,797999999,798899999,799898999,799899899,799999799,879999899]

6

জেলি ,  14  13 বাইট

DS⁼13
.ȷÆRÇÐf

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

কিভাবে?

DS⁼13 - Link 1, test digit sum equals thirteen: number, n
D     - get a list of the decimal digits of n
 S    - sum them
  ⁼13 - equals thirteen?

.ȷÆRÇÐf - Main link: no arguments
.ȷ      - literal 500
  ÆR    - prime range (all primes less than or equal to 500)
     Ðf - filter keep if:
    Ç   -   call last link (1) as a monad


5

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

83LØʒSOTQ}

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

}যেহেতু 9 একটি অবৈধ বাইট গণনা, একটি গর্ত ইত্যাদি বোজানো হিসেবে ব্যবহৃত হয়।

আউটপুট: [19, 37, 73, 109, 127, 163, 181, 271, 307, 433]

ব্যাখ্যা

83L        Push array [1, ..., 83], since 433 is the 83rd prime
   Ø       Map each to the nth prime
    ʒ      Get elements that return 1
     SO     When the sum of the digits
        Q   Equals
       T    10

প্রায় 8 বাইট

এটি আরও কার্যকর হবে যদি আরও একটি বাইট বন্ধ করে দেওয়া যায়।

žyLØʒSO8Q

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

আউটপুট: [17, 53, 71, 107, 233, 251, 431, 503, 521, 701]

ব্যাখ্যা

žy          Push number 128, since 701 is the 125th prime
  L         Push array [1, ..., 128]
   ØʒSO8Q   Map to nth primes and filter to those with a digit sum of 8 (see above)

3

গণিত, 52 বাইট

Select[Prime@Range[10^6],Tr@IntegerDigits@#==52&,10]

{799999,998989,999979,1789999,1798999,1979899,1989979,1997899,1999969,2599999}

থ্যানেক্স থেকে @ গাছে কোনও গাছ -6 বাইটের জন্য নেই


1
আপনি Selectকতগুলি জিনিস ফিরিয়ে দিতে চান তা বলতে পারেন:Select[Prime@Range[10^6],Tr@IntegerDigits@#==52&,10]
গাছ নয়

1
Select[Prime@Range[77705],Tr@IntegerDigits@#==50&]
লিন

2

জে, 29 বাইট

(#~(29=[:+/"."0@":)"0)p:i.872

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

স্পষ্টতই REPL এ কাজ করে, সম্ভবত একটি নিয়মিত প্রোগ্রামও কাজ করে (নিশ্চিত না যে জে কীভাবে প্রোগ্রামগুলি সৎ হওয়ার জন্য আউটপুট দেয়)।

প্রথম পাস, বিশেষত আদর্শ নয় তবে আমি আর কোনও চালাক পদ্ধতির কথা ভাবতে পারি না। একটি ছোট সিকোয়েন্স হার্ডকডিং তদন্ত করতে যাচ্ছি।

ব্যাখ্যা

(#~(29=[:+/"."0@":)"0)p:i.872
                      p:i.872  First 872 primes
 #~                            Filter by
   (29=[:+/"."0@":)"0            Digital sum = 29
                   "0              For each
                ":                 Convert to string
           "."0                    Convert each character to a number
         +/                        Sum results
    29=                            Equate to 29

872 গ্যারান্টি দেয় যে কেবলমাত্র প্রথম 10 টি প্রাইম ব্যবহার করা হবে যার ডিজিটাল যোগফল 29 হবে।


2

ভি , 73 71 বাইট

i8aa9
998a99
a98a
aa89
18998a9
18a8a
18a9989
197aa
199898a
1a7a9Ía/999

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

সরল সাবস্ট্রিং রিপ্লেসমেন্ট কম্প্রেশন - আমি সমস্ত সম্ভাব্য উত্তর আউটপুটগুলি পরীক্ষা করেছিলাম এবং তারপরে "কিছুতে একটি সাধারণ স্ট্রিং প্রতিস্থাপন রয়েছে যা বেশিরভাগ অক্ষর সংরক্ষণ করে" পরীক্ষা করে। যেমন এই টেবিল উত্পাদন । [সম্পাদনা করুন: আমি আবার টেবিলের দিকে তাকালাম এবং এর পরিবর্তে আমি 71 বাইট সংস্করণটি করতে পারলাম বলে]।

উচ্চতর প্রাইমগুলিতে তাদের মধ্যে 9 এর বেশি দীর্ঘ রান রয়েছে এবং আমি সবচেয়ে ভাল খুঁজে পেয়েছি যেখানে অঙ্কগুলি 73 পর্যন্ত যোগ হয়, 89999 -> 1 চরটি পাঠ্যটি 99 বাইট থেকে 63 বাইটে নামিয়ে আনে। বাকি 10 বাইটে 'এ' -> '89999' পূর্বাবস্থায় ফেলার উপায় খুঁজে পেয়ে আমাকে ভিতে নিয়ে যায় led


1

জাপট , 19 বাইট

L²õ f_j ©Zìx ¥19ïA

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


Explantaion

L²õ

õ1 থেকে 100 ( L) স্কোয়ার পর্যন্ত পূর্ণসংখ্যার অ্যারে তৈরি করুন ( )।

f_          Ã

ফিল্টার ( f) একটি ফাংশন মাধ্যমে প্রতিটি পাস করে, Zবর্তমান উপাদান যেখানে ।

j

Zপ্রাইম কিনা তা পরীক্ষা করে দেখুন ।

©

লজিকাল এবং ( &&)।

Zìx

Zঅঙ্কের অ্যারেতে বিভক্ত করুন ( ì) এবং সংযোজন ( x) দ্বারা হ্রাস করুন ।

¥19

সঙ্গে সমতা জন্য পরীক্ষা করুন 19

¯A

¯10 তম উপাদানটিতে ( ) স্লাইস করুন এবং ফলস্বরূপ অ্যারে স্পষ্টভাবে আউটপুট করুন।


1

জাপট , 19 বাইট

AÆ_j ©19¥Zì x «X´}a

এটি অনলাইন চেষ্টা করুন! -Qঅ্যারে ফর্ম্যাট করার জন্য পতাকা সহ

প্রথম দশটি প্রাইম আউটপুট দেয় যার অঙ্কগুলি এতে যুক্ত করে 19:

[199, 379, 397, 487, 577, 739, 757, 829, 883, 919]

নোট করুন যে এটি 18 বাইট ( ì xìx) এ গল্ফ করা যেতে পারে , তবে 18 অঙ্কের অঙ্কের কোনও প্রাইম নেই।

ব্যাখ্যা

[0, ..., 9]নিম্নলিখিত Xমান দ্বারা অ্যারে মানচিত্র , বর্তমান মান যেখানে ।

  _              }a

নিম্নলিখিত ক্রিয়াকলাপটি থেকে সত্যিকারের প্রথম পূর্ণসংখ্যা ফিরে আসুন, Zবর্তমান মানটি কোথায়

   j ©

এই সংখ্যাটি প্রধান কিনা তা পরীক্ষা করুন এবং ...

      19¥Zì x

SUM ( x) ডিজিটের ( ì) এ Zসমান ( ¥) 19,

              «X´

এবং Xমিথ্যা ( «এটি "এবং না", বা &&!)। এটিও হ্রাস পায় X( ´)।

ফলাফলের অ্যারে সুস্পষ্টভাবে আউটপুট করা হয়।


ওহ্ দারুণ; আমরা বিভিন্ন পদ্ধতির সাথে আবদ্ধ।
শেগি

1

প্যারি / জিপি, 40 বাইট

select(x->sumdigits(x)==40,primes(8600))

এটি সম্পর্কে খুব গল্ফ নয় ( xপ্রথম 8600 প্রাথমিকের মধ্যে 40 সংখ্যার যোগফল সহ তাদের নির্বাচন করুন )। আউটপুট হল:

[49999, 68899, 69997, 77899, 78889, 78979, 79699, 79987, 85999, 88789]


1

রুবি ২.৪.১, By৪ বাইট

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

2.4.1 :014 > require'prime';2.step.lazy.select{|n|n.digits.sum==74&&n.prime?}.first(10)
=> [389999999, 398999999, 498989999, 498998999, 499898999, 499899989, 499979999, 499989989, 579989999, 588999899]

0

প্যারাডোক (v0.2.7 +), 10 বাইট (সিপি-1252)

5h¶fφTBŠT=

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

5h         .. 5 hundred
  ¶        .. Check if a number is prime...
   f       .. ...filter by the preceding block; converts 500
           .. to the range [0, 1, ..., 499]
    φ      .. Filter by the following block:
     T     .. Ten
      B    .. Base; convert to base-10 digits
       Š   .. Sum, resulting in the digit sum
        T  .. Ten
         = .. Check if (the digit sum and ten are) equal

কিছুটা প্রশ্নবিদ্ধ যেহেতু এটি সমস্ত সংখ্যার প্রিন্ট করে যার মধ্যে কোনও বিভাজক নেই। একটি 11-বাইট প্রোগ্রাম যা প্রতিটি সংখ্যা পৃথক লাইনে প্রিন্ট করে:

nIè¶fφTBŠE=

এটির বিষয়ে উল্লেখ করার একমাত্র জিনিসটি হ'ল উপরের গণ্ডি যা নির্মাণ করা কিছুটা বেশি কঠিন: এটি 18² = 324।


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