এমনকি সংখ্যাগুলিও কি প্রধান হয়ে উঠতে পারে?


24

সিকোয়েন্স

প্রত্যেকেই জানেন যে কেবলমাত্র প্রধান সংখ্যাটি 2। হো-গুন্ গুন্। তবে, এমন কিছু নির্দিষ্ট সংখ্যা রয়েছে nযেখানে সংমিশ্রিত হয়েn-1 এগুলি একটি মৌলিক সংখ্যা হয়ে যায়।

প্রারম্ভিকদের জন্য, 1তালিকায় নেই, কারণ 10এটি প্রাথমিক নয়। একইভাবে 2( 21), এবং 3( 32) এর সাথে। যাইহোক, 4কাজ করে কারণ 43এটি প্রধান, সুতরাং এটি ক্রমের প্রথম সংখ্যা a(1) = 4। পরের সংখ্যাটি (যেটি 6( 65) বা 8( 87) কাজ করে না তা হ'ল 10, কারণ 109এটি প্রধান a(2) = 10। তারপর আমরা একটি গুচ্ছ পর্যন্ত আরো লাফালাফি 22, কারণ 2221মৌলিক, তাই a(3) = 22। ইত্যাদি।

স্পষ্টতই এই অনুক্রমের সমস্ত পদ সমান, কারণ যে কোনও বিজোড় সংখ্যা nযখন সংমিশ্রিত হয় তখন তা সমানে n-1পরিণত হয় ( 3পরিণত হওয়ার মতো 32), যা কখনই প্রধান হবে না will

এটি OEIS এ ক্রম A054211

চ্যালেঞ্জ

একটি ইনপুট নম্বর দেওয়া হয়েছে nযা এই সিকোয়েন্সে কোথাও ফিট করে (অর্থাত্ সংক্ষিপ্ত nআকারটি n-1প্রাইম), এই ক্রমটিতে তার অবস্থান নির্ধারণ করুন। আপনি 0- বা 1-ইনডেক্সযুক্ত চয়ন করতে পারেন তবে দয়া করে আপনার জমা দেওয়ার বিষয়টি উল্লেখ করুন।

বিধি

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

উদাহরণ

নীচের উদাহরণগুলি 1-সূচকযুক্ত।

n = 4
1

n = 100
11

n = 420
51

1
বিপরীতে এটি করতে হবে কেন? cQuents এর মোডটি নেই :(
স্টিফেন

4
@ স্টেপহেন কেবল গতি পরিবর্তনের জন্য; স্বাভাবিকের চেয়ে আলাদা কিছু।
অ্যাডমবার্কবার্ক

9
আমি মনে করি সিদ্ধান্তের সমস্যা হিসাবে এটি আরও ভাল হবে।
গম উইজার্ড

4
2 কেবল 2 দ্বারা বিভাজ্য একমাত্র মৌলিক সংখ্যা নয়, 3 এছাড়াও 3 দ্বারা বিভাজ্য একমাত্র মৌলিক সংখ্যা এবং 5 হ'ল 5 দ্বারা বিভাজ্য একমাত্র প্রাথমিক সংখ্যা general সাধারণভাবে, একটি মৌলিক সংখ্যা nসর্বদা একমাত্র প্রধান সংখ্যা দ্বারা বিভাজ্য n। এটি বিশেষ নয় - ঠিক এটিই প্রাথমিক সংখ্যাগুলি কাজ করে।
4:44 এ

উত্তর:


11

জেলি ,  8  7 বাইট

ḊżṖVÆPS

একটি মোনাডিক লিঙ্কটি সিকোয়েন্সের সদস্য নিচ্ছে এবং ক্রমটিতে তার সূচকটি ফিরে আসবে।

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

কিভাবে?

ḊżṖVÆPS - Link: number, n
Ḋ       - dequeue (implicit range) = [ 2   , 3   , 4   ,... ,              n         ]
  Ṗ     - pop (implicit range)     = [   1 ,   2 ,   3 ,... ,                  n-1   ]
 ż      - zip                      = [[2,1],[3,2],[4,3],... ,             [n , n-1]  ]
   V    - evaluate as Jelly code   = [ 21  , 32  , 43  ,... ,         int("n"+"n-1") ]
    ÆP  - is prime? (vectorises)   = [  0  ,  0  ,  1  ,... , isPrime(int("n"+"n-1"))]
      S - sum

টিআইও আমার জন্য নিচে নেই, সম্ভবত এটি আবার ফিরে পেয়েছে?
কনর ও'ব্রায়ান

1
ফিক্সড 2 মিনিট আগে এর :) যেমন
জনাথন অ্যালান

সুন্দর! সেই zip(head(), pop())কৌশলটি সত্যিই দুর্দান্ত। :)
ডিজেএমসিএমহেম

কোন এনকোডিংয়ে এটি 7 বাইট?
কাইলফিন

1
@ কাইলফিন জেলির নিজস্ব কোড-পৃষ্ঠা রয়েছে, এটি দেখতে হেডারের বাইটস লিঙ্কটি ক্লিক করুন।
জোনাথন অ্যালান

8

হাস্কেল , 80 75 70 বাইট

লাইকনি ধন্যবাদ 5 বাট

p x=all((>0).mod x)[2..x-1]
g n=sum[1|x<-[4..n],p$read$show=<<[x,x-1]]

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


1
আমি মনে করি আপনি সংক্ষিপ্ত প্রাথমিক পরীক্ষাটি ব্যবহার করতে পারেন p x=all((>0).mod x)[2..x-1]যা 1 এর জন্য ব্যর্থ হয়, তবে এই ক্ষেত্রে এটি বিবেচনা করা উচিত নয়।
লাইকনি

1
এছাড়াও show x++show(x-1)সংক্ষিপ্ত করা যেতে পারে show=<<[x,x-1]
লাইকনি

@ লাইকনি টিপসের জন্য ধন্যবাদ! আমি ভেবেছিলাম এটি showএকটি ছোট পদ্ধতিতে করা যেতে পারে তবে আমি কোনও কারণে একটি কনক্যাট মানচিত্রের কথা ভাবি নি।
গম উইজার্ড

6

জেলি , 12, 10 , 8 বাইট

;’VÆPµ€S

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

1-2 বাইট @ nmjmcman101, এবং 2 বাইট @ ডেনিসের জন্য ধন্যবাদ সংরক্ষণ করেছে!

ব্যাখ্যা:

     µ€   # For N in range(input()):
;         #   Concatenate N with...
 ’        #   N-1
  V       #   And convert that back into an integer
   ÆP     #   Is this number prime?
       S  # Sum that list 

আপনি কি আর ড্রপ করতে পারেন এবং অন্তর্ভুক্ত ব্যাপ্তিটি ব্যবহার করতে পারেন?
nmjcman101

@ nmjcman101 আমি পুরোপুরি জানতাম না যে এটি একটি জিনিস ছিল। ধন্যবাদ!
DJMcMayhem

5

05 এ বি 1 ই , 9 8 7 বাইট

কোড

ƒNN<«pO

05AB1E এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

ƒ          # For N in [0 .. input]..
 NN<«      #   Push n and n-1 concatenated
     p     #   Check for primality
      O    #   Sum the entire stack (which is the number of successes)

অবশ্যই এটি এই সুযোগটি গ্রহণ করে যে 05AB1E ত্রুটিগুলি উপেক্ষা করে ... কারণ আমি মনে করি না আপনি '0-1'প্রাইম কিনা তা পরীক্ষা করতে পারবেন ।
এরিক দি আউটগল্ফার

5

হুশ , 13 11 10 বাইট

1সূচিযুক্ত সমাধান:

#ȯṗdS¤+d←ḣ

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

Ungolfed / ব্যাখ্যা

         ḣ -- in the range [1..N]
#          -- count the number where the following predicate is true
        ←  --   decrement number,
    S  d   --   create lists of digits of number and decremented 
     ¤+    --   concatenate,
   d       --   interpret it as number and
 ȯṗ        --   check if it's a prime number

-3বাইটের জন্য @ জগারবকে ধন্যবাদ !


1
£İpসমতূল্য । এছাড়াও, আপনি এর #…ḣপরিবর্তে একটি বাইট সংরক্ষণ করতে পারেন £f…N
জাগারব

4

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

-২ বাইটস @ আফিসিয়ালাইমকে ধন্যবাদ । 1-ইন্ডেক্স।

lambda n:sum(all(z%v for v in range(2,z))for i in range(4,n+1)for z in[int(`i`+`i-1`)])

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


আমি যত তাড়াতাড়ি সম্ভব এটি গল্ফ করছি। পরামর্শ স্বাগত জানাই।
মিঃ এক্সকোডার


4

পাইথ , 12 বাইট

smP_s+`d`tdS

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন।


কিভাবে?

smP_s+`d`tdSQ  -> Full Program. Takes input from Standard Input. Q means evaluated input
                  and is implicit at the end.

 m         SQ  -> Map over the Inclusive Range: [1...Q], with the current value d.
    s+`d`td    -> Concatenate: d, the current item and: td, the current item decremented. 
                  Convert to int.
  P_           -> Prime?
s              -> Sum, counts the occurrences of True.

4

জাপট , 15 14 12 11 9 8 বাইট

1-ইন্ডেক্স।

ÇsiZÄÃèj

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

Ç            :Map each Z in the range [0,input)
 s           :  Convert to string
  i          :    Prepend
   ZÄ        :    Z+1
     Ã       :End map
      è      :Count
       j     :  Primes


গাহ! আমার কেন এমন অন্ধ স্পট থাকবে Æএবং Ç!? ধন্যবাদ, @ অলিভার; আমি যখন কম্পিউটারে ফিরে আসি তখন আপডেট করব।
শেগি

2o+X(পিছনে স্থান সহ) এর জায়গায় কাজ করবে [XXÉ], যদিও আমি যদি কখনও অটো-ব্যালেন্সিং []বন্ধনীগুলিতে ঘুরে যাই তবে আপনার সমাধানটি বাইট ছোট হবে। (প্রকৃতপক্ষে ২, যেহেতু আপনি তখন তা করতে পারেন õ_ZÉ]¬nÃèj)
ইটিএইচ প্রডাকশনগুলি

@ ইথ প্রডাকশনস: আজকাল অ্যারের সাথে কাজ করার সময় আমি যে মুঠো জিনিসটি করি তা পরীক্ষা করে দেখা হচ্ছে যে অটো-ব্যালেন্সিং এর জন্য যুক্ত করা হয়েছে কিনা []! : ডি
শেগি

কিছু কারণে আমি মনে করি যে সেমিকোলনগুলি পুরোপুরি পাশাপাশি কাজ বন্ধ করে দিয়েছে, তাই আমি এটি ঠিক করার চেষ্টা করব। ভেবে দেখবেন না আগামীকাল বিকেল পর্যন্ত আমার একটা সুযোগ হবে।
ETH প্রোডাকশনগুলি

3

রাদা , 73 বাইট

{seq 3,_|slide 2|parseInteger`$_2$_1`|{|i|[1]if seq 2,i-1|[i%_!=0]}_|sum}

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

1-ইন্ডেক্স। এটি ইনপুট এবং আউটপুট করতে স্ট্রিমটি ব্যবহার করে।

ব্যাখ্যা:

{
seq 3,_| /* Create a stream of numbers from 3 to input */
slide 2| /* Duplicate every number except the first and the last
            to create (n-1,n) pairs */
parseInteger`$_2$_1`| /* Concatenate n and n-1 and convert to integer */
{|i| /* For every i in the stream: */
    [1]if seq 2,i-1|[i%_!=0] /* Push 1 if i is a prime
                                (not divisible by smaller numbers) */
}_|
sum /* Return the sum of numbers in the stream */
}

2

পাইথ , 14 বাইট

lfP_Tms+`d`tdS

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

ব্যাখ্যা

              Q    # Implicit input
             S     # 1-indexed range
     m             # For d in range [1, Q]...
      s+`d`td      # Concatenate d and d - 1
 fP_T              # Filter on primes
l                  # Return the length of the list

আপনি আমাকে কয়েক সেকেন্ডের ব্যবধানে পরাজিত করেছেন, আমি আপনাকে কয়েকটি বাইট দ্বারা পরাজিত করেছি: পি
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার আমার প্রথম সংস্করণটি ছিল lfTmP_s+`d`tdS, এটি দুর্ভাগ্য যে আমি তখন নিজের দ্বারা নিজের কৌশলটি খুঁজে পাইনি :)
জিম

2

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

{first :k,$_,grep {is-prime $_~.pred},1..∞}

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

grepসংখ্যার কোয়ালিফাইং ক্রম উৎপন্ন, তাহলে আমরা কী (জন্য চেহারা :k) (অর্থাত, সূচক) -এর firstতালিকা যে ইনপুট প্যারামিটার সমান নম্বর $_



2

সি, 99 94 বাইট

1 সূচকযুক্ত। এটি আমার কাছে প্রাথমিক পরীক্ষাগুলি লিখতে ব্যথা করে যা এত কমপিটেশনাল অপ্রয়োজনীয়, তবে বাইটস সর্বোপরি বাইট।

আমরা যদি জিসিসি 7.1.1 এর সাথে অপ্টিমাইজেশন ছাড়াই আমার মেশিনে সংকলন করে কিছু সত্যই ভঙ্গুর স্টাফগুলিকে অনুমতি দিই তবে নিম্নলিখিত 94 বাইট কাজ করে (ধন্যবাদ কনার ওব্রায়ান )

i,c,m,k;f(n){c=i=1;for(;++i<n;c+=m==k){for(k=m=1;m*=10,m<i;);for(m=i*m+i-1;++k<m&&m%k;);}n=c;}

অন্যথায় এই আরও শক্তিশালী 99 বাইট কাজ করে

i,c,m,k;f(n){c=i=1;for(;++i<n;c+=m==k){for(k=m=1;m*=10,m<i;);for(m=i*m+i-1;++k<m&&m%k;);}return c;}

সম্পূর্ণ প্রোগ্রাম, আরও কিছুটা পাঠযোগ্য:

i,c,m,k;
f(n){
    c=i=1;
    for(;++i<n;c+=m==k){
        for(k=m=1;m*=10,m<i;);
        for(m=i*m+i-1;++k<m&&m%k;);
    }
    return c;
}

int main(int argc, char *argv[])
{
    printf("%d\n", f(atoi(argv[1])));
    return 0;
}

আপনার সংকলকটির উপর নির্ভর করে আপনি এর n=c;পরিবর্তে কিছু বাইট সংরক্ষণ করতে সক্ষম হতে পারেন return c;:i,c,m,k;f(n){c=i=1;for(;++i<n;c+=m==k){for(k=m=1;m*=10,m<i;);for(m=i*m+i-1;++k<m&&m%k;);}n=c;}
কনর ও'ব্রায়ান

আমি বলতে পারি না যে আমি এমন জিনিস ব্যবহার করতে চাই যা এমনকি অপ্টিমাইজেশনের স্তরের সাথেও আলাদা হয় বলে মনে হয়। জিসিসি ব্যবহার করে, কোনও অপ্টিমাইজেশন ছাড়াই -O0 এটি কাজ করে, অন্যান্য অপ্টিমাইজেশন পতাকাগুলির সাথে এটি ব্যবহার করে না। মজার বিষয় হচ্ছে -O1 -O2 এবং -O3 এটি 0 ফেরত দেয় -ও এটি 1 প্রত্যাবর্তন করে -অগ এটি এন -1 প্রদান করে।
অ্যালগমির

আপনার প্রোগ্রামটি কীভাবে সংকলন করা উচিত তা আপনি সর্বদা আপনার উত্তরে উল্লেখ করতে পারেন।
কনর ও'ব্রায়েন

আমার ধারণা, কিছুটা সস্তা লাগছে। তবে আমি একটি বিকল্প যোগ করতে পারেন।
অ্যালগমির

আমি বুঝতে পেরেছি, তবে এটি করা
কনর


1

গণিত, 77 বাইট

Position[Select[Range@#,PrimeQ@FromDigits[Join@@IntegerDigits/@{#,#-1}]&],#]&

0

কিউবিআইসি , 25 বাইট

[:|p=p-µa*z^_l!a$|+a-1}?p

ব্যাখ্যা

[:|     FOR a = 1 to <n>
p=p-    Decrement p (the counter) by
µ       -1 if the following is prime, or 0 if not
        For the concatenating, we multiply 'a' by 10^LENGTH(a), then add a-1$┘p
        Example 8, len(8) = 1, 8*10^1 = 80, add 8-1=7, isPrime(87) = 0
a*z^_l!a$|+a-1
}       Close the FOR loop - this also terminates the prime-test
?p      Print p, the 0-based index in the sequence.

এটি উত্তম পরিমাপের জন্য কাস্ট-টু-স্ট্রিংয়ের জন্য কড়া থেকে জড়িত কিছু গণিত-জিনিস ব্যবহার করে। একটি সংস্করণ টুপি তৈরি করা পুরোপুরি স্ট্রিং-ভিত্তিক যুক্তিযুক্তকরণটি আরও একবার বাইট:

[:|A=!a$+!a-1$┘p=p-µ!A!}?p

0

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

<?php $n=($a=$argv[1]).($a-1);$p=[2];$r=0;for($b=2;$b<=$n;$b++){$x=0;if(!in_array($b,$p)){foreach($p as $v)if(!($x=$b%$v))break;if($x)$p[]=$b;}}for($b=1;$b<=$a;$b++)if(in_array($b.($b-1),$p))$r++;die $r;

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

আউটপুট জন্য 1-ভিত্তিক সূচক ব্যবহার করে। টিআইও লিঙ্কে কোডটির পঠনযোগ্য সংস্করণ রয়েছে।


0

রুবি , 42 + 9 = 51 বাইট

-rprime -nপতাকা ব্যবহার করে । 1-ইন্ডেক্স।

ইনপুট সমান বা নীচে সমস্ত সংখ্যা গণনা করে কাজ করে যা শর্ত পূরণ করে (বা আরও প্রযুক্তিগতভাবে, সমস্ত সংখ্যা যা n-1শর্ত পূরণ করে )। যেহেতু ইনপুটটি ধারাবাহিকভাবে থাকার নিশ্চয়তা রয়েছে তাই এলোমেলো ইনপুট থেকে 7"প্রাইম হয়ে উঠবে না" ত্রুটি হওয়ার কোনও ঝুঁকি নেই।

p (?3..$_).count{|i|eval(i.next+i).prime?}

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




0

জাভা 8, 108 বাইট

n->{for(long r=0,q=1,z,i;;){for(z=new Long(q+""+~-q++),i=2;i<z;z=z%i++<1?0:z);if(z>1)r++;if(q==n)return r;}}

0-ইন্ডেক্স

ব্যাখ্যা:

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

n->{                             // Method with integer parameter and long return-type
  for(long r=0,                  //  Result-long, starting at 0
      q=1,                       //  Loop integer, starting at 1
      z,i;                       //  Temp integers
      ;){                        //  Loop indefinitely
    for(z=new Long(q+""+~-q++),  //   Set z to `q` concatted with `q-1`
        i=2;i<z;z=z%i++<1?0:z);  //   Determine if `z` is a prime,
      if(z>1)                    //   and if it indeed is:
        r++;                     //    Increase the result-long by 1
      if(q==n)                   //   If `q` is now equal to the input integer
        return r;}}              //    Return the result

0

স্ট্যাক্স , 10 বাইট

1- সূচকযুক্ত

Äm▬á┌╕|°φ♦

এটি চালান এবং এটি ডিবাগ করুন ব্যাখ্যা

Rxr\{$e|pm|+         #Full program, unpacked, implicit input  (Example (4))
R                    #Create [1 to input] range  (ex [1,2,3,4] )             
 x                   #Copy value from x register (ex (4) )
  r                  #Create [0 to input-1] range (ex [0,1,2,3)
   \                 #Create array pair using the range arrays (ex [[1,0],[2,1],[3,2],[4,3]])
    {    m           #Map block
     $e|p            #To string, eval string (toNum), isPrime (ex [1,0] => "10" => 10 => 0)
          |+         #Sum the array to calculate number of truths (ex [0,0,0,1] => 1)

0

পরিপাটি , 33 বাইট

index({n:prime(n.n-1|int)}from N)

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

ব্যাখ্যা

মূল ধারণাটি হ'ল সংখ্যার একটি ক্রম তৈরি করে তারপরে একটি ত্রিযুক্ত সূচক ফাংশনটি ফিরিয়ে দেয়।

index({n:prime(n.n-1|int)}from N)
      {n:                }from       select all numbers `n` from...
                               N     the set of natural numbers, such that:
               n.n-1                     `n` concatenated with `n-1`
                    |int                 ...converted to an integer
         prime(         )                ...is prime
index(                          )    function that returns index of input in that sequence
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.