প্রধান গণনা কার্যক্রম


28

ভূমিকা

প্রধানমন্ত্রী কাউন্টিং ফাংশন , এছাড়াও পাই ফাংশন হিসাবে পরিচিত , মৌলিক সংখ্যার পরিমাণ ফেরৎ কম বা এক্স এর সমান।π(এক্স)

চ্যালেঞ্জ

আপনার প্রোগ্রামটি পূর্ণসংখ্যার x নেবে যা আপনি ধনাত্মক বলে ধরে নিতে পারেন এবং x এর চেয়ে কম বা সমান প্রাইমের পরিমাণের সমান একটি একক পূর্ণসংখ্যা আউটপুট পাবেন। এটি একটি চ্যালেঞ্জ, সুতরাং বিজয়ী হ'ল কম সংখ্যক বাইট সহ প্রোগ্রাম।

এই চ্যালেঞ্জটি সামনে আসার আগেই আপনি যে কোনও ভাষা বেছে বেছে বেছে বেছে ব্যবহার করতে পারেন, তবে যদি ভাষাটির মধ্যে অন্তর্নির্মিত প্রাইম-কাউন্টিং ফাংশন বা একটি প্রাথমিকতা পরীক্ষা করার ফাংশন (যেমন ম্যাথমেটিকা) থাকে তবে সেই ফাংশনটি আপনার কোডটিতে ব্যবহার করা যাবে না ।

উদাহরণ ইনপুট

ইনপুট:
1
আউটপুট:
0

ইনপুট:
2
আউটপুট:
1

ইনপুট:
5
আউটপুট:
3

A000720 - OEIS


3
অন্যান্য প্রধান-সম্পর্কিত কার্যাদি সম্পর্কে কী? উদাহরণস্বরূপ, "নেক্সট প্রাইম" ফানসিটন
লুইস মেন্ডো

6
প্রাইম ফ্যাক্টরাইজেশন ফাংশন সম্পর্কে কী?
মালটিসেন

4
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম!
আদনান

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

আমি মনে করি এটিই ছিল @ দ্য বাইকিংভাইকিং এর সাথে লিঙ্কটি বোঝাতে চেয়েছিল: সম্পর্কিত
এমবম্ব007

উত্তর:


36

05 এ বি 1 , 3 বাইট

!fg

এটি ধরে নিয়েছে যে বিল্ট-ইনগুলি নির্ধারণের অনুমতি দেয় allowed এটি অনলাইন চেষ্টা করুন!

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

!    Compute the factorial of the input.
 f   Determine its unique prime factors.
  g  Get the length of the resulting list.

5
আসলেই চালাক!
mbomb007

5
অভিশাপ, আমি আমার নিজের ভাষায় দ্বিতীয়বার হাহাহা করছি । +1
আদনান

কেন এই কাজ করে?
অলিভার নি

1
@ অলিভার কারণ n এর ফ্যাক্টরিয়ালটি সমস্ত সংখ্যার 1, ..., n (বিশেষত প্রাইমস p ≤ n ) দ্বারা বিভাজ্য , এবং অন্য কোনও প্রাইম Q> n দ্বারা যেহেতু এটি ছোট সংখ্যার পণ্য হিসাবে প্রকাশ করা যায় না।
ডেনিস

10

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

f=lambda n,k=1,p=1:n/k and p%k+f(n,k+1,p*k*k)

উইলসনের উপপাদ্য প্রাইম জেনারেটর ব্যবহার করে । পণ্যটি pট্র্যাক করে (k-1)!^2এবং p%kপ্রাইমগুলির জন্য 1 এবং ননপ্রাইমগুলির জন্য 0 হয়।


নীচ থেকে ফ্যাক্টরিয়াল গণনা করা একটি দুর্দান্ত কৌশল। +1
ETH প্রোডাকশনগুলি

6

এমএটিএল , 11, 10, 8 , 5 বাইট

:pYFn

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

আমি এমন একটি সংস্করণ লিখেছিলাম যার এমএটিএল এর ম্যাট্রিকগুলি কীভাবে কাজ করে তার একটি দুর্দান্ত ব্যাখ্যা ছিল:

:YF!s1=1

তবে এটি আর প্রাসঙ্গিক নয়। আপনি যদি এটি দেখতে চান তবে পুনর্বিবেচনার ইতিহাসটি দেখুন।

নতুন ব্যাখ্যা:

:p      % Compute factorial(input)
  YF    % Get the exponenents of prime factorization
    n   % Get the length of the array

ডেনিসের প্রতিভা সমাধানের জন্য তিনটি বাইট সংরক্ষণ করেছে


এটি "প্রাইম ফ্যাক্টেরাইজেশনের এক্সপেন্ডারস" ফাংশনটি ব্যবহার করা সংক্ষিপ্ত করে, কারণ এটি ভেক্টরাইজ করে:YF!s1=s
লুইস মেন্ডো

@ লুইস মেন্ডো এটি সম্পূর্ণ ভিন্ন পন্থা, সুতরাং এগিয়ে যান এবং এটি পোস্ট করতে নির্দ্বিধায়। (যদিও আপনি না চান তবে আমি আনন্দের সাথে করব)
ডিজেএমসিএমহেম

এগিয়ে যান. অনুশীলন করার জন্য আমি জেলিটিকে পোর্ট করব :-)
লুইস মেন্ডো

5

জেলি , 8 5 বাইট

@ ডেনিসকে 3 টি বাইট সংরক্ষণ করা হয়েছে!

RÆESL

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

ডিজেএমসিএমহেমের এমএটিএল উত্তর (পূর্ববর্তী সংস্করণ) ডেনিস দ্বারা পরিশ্রুত পোর্ট ।

R          Range of input argument
 ÆE        List of lists of exponents of prime-factor decomposition
   S       Vectorized sum. This right-pads inner lists with zeros
    L      Length of result

1
সংশোধন: লুইস মেন্ডোর বন্দর: ডিজেএমসিএমহেমের এমএটিএল উত্তর। : পি
ডিজেএমসিএমহেম

2
আপনার কেবলমাত্র ফলাফলগুলির সর্বাধিক দৈর্ঘ্য প্রয়োজন ÆE, কারণ প্রতিটি কাণ্ডকারক পৃথক মৌলিক ফ্যাক্টরের সাথে মিল রাখে। RÆESLঅর্জন যে ঠিক। !ÆELআরও খাটো হবে।
ডেনিস

1
@ ডেনিস ধন্যবাদ! আমি প্রথম পরামর্শ ব্যবহার করেছি। দ্বিতীয়টিটি খুব আলাদা, এবং আপনার পদ্ধতির
লুইস মেন্ডো

5

পার্সারফিউশনস , মিডিয়াউইকি টেম্পলেটগুলি 220 + 19 = 239 বাইট

{{#ifexpr:{{{2}}}+1={{{1}}}|0|{{#ifexpr:{{{3}}}={{{2}}}|{{P|{{{1}}}|{{#expr:{{{2}}}+1}}|2}}|{{#ifexpr:{{{2}}} mod {{{3}}}=0|{{#expr:1+{{P|{{{1}}}|{{#expr:{{{2}}}+1}}|2}}|{{P|{{{1}}}|{{{2}}}|{{#expr:{{{2}}}+1}}}}}}}}}}}}

টেম্পলেট কল করতে:

{{{P|{{{n}}}|2|2}}}

লিস্প স্টাইলে সাজানো:

{{#ifexpr:{{{2}}} + 1 = {{{1}}}|0|
    {{#ifexpr:{{{3}}} = {{{2}}} |
        {{P|{{{1}}}|{{#expr:{{{2}}} + 1}}|2}} |
            {{#ifexpr:{{{2}}} mod {{{3}}} = 0 |
                {{#expr:1 + {{P|{{{1}}}|{{#expr:{{{2}}} + 1}}|2}} |
                {{P|{{{1}}}|{{{2}}}|{{#expr:{{{2}}} + 1}}}}}}}}}}}}

2 থেকে শুধু একটি মৌলিক primality পরীক্ষা এন । তাদের চারপাশে তিন ধনুর্বন্ধনী সঙ্গে সংখ্যাগুলি ভেরিয়েবল, যেখানে {{{1}}}হয় এন , {{{2}}}, সংখ্যা পরীক্ষা করা হচ্ছে {{{3}}}ফ্যাক্টর করা উচিত নয়।


5

পার্ল, 33 বাইট

এর জন্য +1 অন্তর্ভুক্ত -p

এসটিডিনে ইনপুট নম্বর দিন

primecount.pl

#!/usr/bin/perl -p
$_=1x$_;$_=s%(?!(11+)\1+$)%%eg-2

এর জন্য ভুল ফলাফল দেয় 0তবে এটি ঠিক আছে, অপটি শুধুমাত্র ইতিবাচক পূর্ণসংখ্যার জন্য সমর্থন চেয়েছিল।


4

রেটিনা, 31 বাইট

বাইট গণনাটি আইএসও 8859-1 এনকোডিং ধরেছে। ইনপুট, থেকে ইউনারী রূপান্তর উৎপন্ন পরিসর 1থেকে n, তার নিজস্ব লাইনে প্রতিটি। প্রাইমগুলির সাথে মেলে।

.*
$*
\B
¶$`
m`^(?!(..+)\1+$)..

অনলাইনে এটি ব্যবহার করে দেখুন - 2800 এর চেয়ে বেশি বড় ইনপুট হয় বার হয়ে যায় বা মেমরি শেষ হয়ে যায়।

তথ্যসূত্র:

মার্টিনের রেঞ্জ জেনারেটর

মার্টিনের প্রাইম চেকার



4

জেলি , 13 11 10 9 8 7 6 বাইট


@ মাইলস -1 বাইট ধন্যবাদ (
1 একটি টেবিল ব্যবহার করুন) -1 বাইট @ ডেনিসকে ধন্যবাদ (1 বিভাজনগুলি গণনা করার জন্য অ্যানারি থেকে রূপান্তর করুন ) - তে কোনও বিল্ট-ইন প্রাইম ফাংশন ব্যবহার না করে

ḍþḅ1ċ2

TryItOnline
নাকি এটি ধারাবাহিক প্রথম 100 শর্তাবলী দেখুনn=[1,100]এ এছাড়াও TryItOnline

কিভাবে?

ḍþḅ1ċ2 - Main link: n
 þ     - table or outer product, n implicitly becomes [1,2,3,...n]
ḍ      - divides
  ḅ1   - Convert from unary: number of numbers in [1,2,3,...,n] that divide x
                             (numbers greater than x do not divide x)
    ċ2 - count 2s: count the numbers in [1,2,3,...,n] with exactly 2 divisors
                   (only primes have 2 divisors: 1 and themselves)

1
আপনি %þ`¬Sċ2অবশিষ্টাংশের টেবিলটি ব্যবহার করে 7 বাইট পেতে পারেন ।
মাইল

1
ḍþḅ1ċ2একটি বাইট সংরক্ষণ করে।
ডেনিস

4

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

f=(n,x=n)=>n>1&&(--x<2)+(n%x?f(n,x):f(n-1))

আমার 36 35 33-বাইট আদিম কার্যের একটি পরিবর্তন (1 বাইট @ নীল দ্বারা সংরক্ষিত, @ আর্নল্ড দ্বারা 2):

f=(n,x=n)=>n>1&--x<2||n%x&&f(n,x)

(আমি এটি কোথাও পোস্ট করতে পারছি না কারণ এই সংখ্যাটি কি প্রাথমিক? কেবলমাত্র পুরো প্রোগ্রামগুলি গ্রহণ করে ...)

পরীক্ষার স্নিপেট


ওয়াও ... বুঝতে আমার কিছুটা সময় লাগল সুন্দর কাজ!
টডিল

দুঃখের বিষয় এটি আপনার উত্তরের জন্য প্রযোজ্য নয় তবে আপনি সম্ভবত &আপনার আদিম কার্যের মধ্য দিয়ে একটি নিয়ে চলে যেতে পারেন ।
নীল

3

পাওয়ারশেল ভি 2 +, 98 বাইট

param($n)if($j='001'[$n]){}else{for($i=1;$i-lt$n){for(;'1'*++$i-match'^(?!(..+)\1+$)..'){$j++}}}$j

সাবধানতা: বড় ইনপুটটির জন্য এটি ধীর

মূলত আনরি-ভিত্তিক চেহারাটি কি এই সংখ্যাটি প্রধান? , একটি forলুপ এবং একটি $j++কাউন্টার সঙ্গে মিলিত । প্রান্তের কেস ইনপুট জন্য অ্যাকাউন্টে সামনের সামান্য অতিরিক্ত যুক্তি যুক্ত করুন 1এবং 2কীভাবে forলুপগুলিতে বেড়া পোস্টিং কাজ করে ।


3

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

ধরে নিই যে প্রাইম ফ্যাক্টরীকরণ বিল্টিনগুলি অনুমোদিত।

কোড:

LÒ1ùg

ব্যাখ্যা:

L      # Get the range [1, ..., input]
 Ò     # Prime factorize each with duplicates
  1ù   # Keep the elements with length 1
    g  # Get the length of the resulting array

সিপি -1222 এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!


ÅPgএখন কি ঠিক তাই হবে?
যাদু অক্টোপাস উরান


3

জেলি , 6 বাইট

Ḷ!²%RS

এটি কেবলমাত্র মৌলিক পাটিগণিত এবং উইলসনের উপপাদ্য ব্যবহার করে। এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন

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

Ḷ!²%RS  Main link. Argument: n

Ḷ       Unlength; yield [0, ..., n - 1].
 !      Factorial; yield [0!, ..., (n - 1)!].
  ²     Square; yield [0!², ..., (n - 1)!²].
    R   Range; yield [1, ..., n].
   %    Modulus; yield [0!² % 1, ..., (n - 1)!² % n].
        By a corollary to Wilson's theorem, (k - 1)!² % k yields 1 if k is prime
        and 0 if k is 1 or composite.
     S  Sum; add the resulting Booleans.

3

সি # 5.0 78 77

int F(int n){int z=n;if(n<2)return 0;for(;n%--z!=0;);return(2>z?1:0)+F(n-1);}

Ungolfed

int F(int n)
{
    var z = n;
    if (n < 2) return 0;
    for (; n % --z != 0;) ;
    return F(n - 1) + (2 > z ? 1 : 0);
}

@ টিফবি্নিনজা হ্যাঁ আপনি ঠিক বলেছেন, তবে আমি শুধুমাত্র ফাংশনটির অংশ দিয়েছি, যা এটি নিজস্ব দ্বারা সংকলন করে না
এরিয়েল বেরেসলাভস্কি


শীতল শোনাচ্ছে!
ফ্যানটাসি


2

বাশ + কোর্টিলস, 30

seq $1|factor|egrep -c :.\\S+$

Ideone।


বাশ + কোর্টিল + বিএসডি-গেমস প্যাকেজ, 22

primes 1 $[$1+1]|wc -l

এই খাটো উত্তর জন্য আপনাকে bsdgames প্যাকেজটি ইনস্টল থাকা যে: sudo apt install bsdgames



2

সি #, 157 বাইট

n=>{int c=0,i=1,j;bool f;for(;i<=n;i++){if(i==1);else if(i<=3)c++;else if(i%2==0|i%3==0);else{j=5;f=1>0;while(j*j<=i)if(i%j++==0)f=1<0;c+=f?1:0;}}return c;};

পরীক্ষার কেস সহ সম্পূর্ণ প্রোগ্রাম:

using System;

class a
{
    static void Main()
    {
        Func<int, int> s = n =>
            {
                int c = 0, i = 1, j;
                bool f;
                for (; i <= n; i++)
                {
                    if (i == 1) ;
                    else if (i <= 3) c++;
                    else if (i % 2 == 0 | i % 3 == 0) ;
                    else
                    {
                        j = 5;
                        f = 1 > 0;
                        while (j * j <= i)
                            if (i % j++ == 0)
                                f = 1 < 0;
                        c += f ? 1 : 0;
                    }
                }
                return c;
            };

        Console.WriteLine("1 -> 0 : " + (s(1) == 0 ? "OK" : "FAIL"));
        Console.WriteLine("2 -> 1 : " + (s(2) == 1 ? "OK" : "FAIL"));
        Console.WriteLine("5 -> 3 : " + (s(5) == 3 ? "OK" : "FAIL"));
        Console.WriteLine("10 -> 4 : " + (s(10) == 4 ? "OK" : "FAIL"));
        Console.WriteLine("100 -> 25 : " + (s(100) == 25 ? "OK" : "FAIL"));
        Console.WriteLine("1,000 -> 168 : " + (s(1000) == 168 ? "OK" : "FAIL"));
        Console.WriteLine("10,000 -> 1,229 : " + (s(10000) == 1229 ? "OK" : "FAIL"));
        Console.WriteLine("100,000 -> 9,592 : " + (s(100000) == 9592 ? "OK" : "FAIL"));
        Console.WriteLine("1,000,000 -> 78,498 : " + (s(1000000) == 78498 ? "OK" : "FAIL"));
    }
}

একবার আপনি 1 মিলিয়নের উপরে গেলে কিছুক্ষণ নেওয়া শুরু করে।


2

মতলব, 60 বাইট

এক লাইন মতলব ফাংশনে আমার সংযুক্তি অবিরত করা। অন্তর্নির্মিত একটি অনুকরণ ব্যবহার না করে:

f=@(x) nnz(arrayfun(@(x) x-2==nnz(mod(x,[1:1:x])),[1:1:x]));

প্রদত্ত যে একটি প্রাইমের yমধ্যে কেবল দুটি কারণ রয়েছে [1,y]: আমরা পরিসরে সংখ্যাগুলি গণনা করি [1,x]যার দুটি মাত্র কারণ রয়েছে।

অনুষঙ্গ ব্যবহারের মাধ্যমে উল্লেখযোগ্যভাবে সংক্ষিপ্তকরণ (46 বাইটের নিচে) কমে যায়।

g=@(x) size(unique(factor(factorial(x))),2);

উপসংহার: তাদের গল্ফিং ভাষাগুলি খতিয়ে দেখার দরকার: ডি


2

আসলে, 10 বাইট

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

;╗r`P╜>`░l

Ungolfing

         Implicit input n.
;╗       Duplicate n and save a copy of n to register 0.
r        Push range [0..(n-1)].
`...`░   Push values of the range where the following function returns a truthy value.
  P        Push the a-th prime
  ╜        Push n from register 0.
  >        Check if n > the a-th prime.
l        Push len(the_resulting_list).
         Implicit return.

2

জেলি , 3 বাইট

ÆRL

জেলি একটি অন্তর্নির্মিত প্রধান গণনা ফাংশন, ÆCএবং একটি প্রধান চেকিং ফাংশন আছে ÆP, এটি পরিবর্তে একটি অন্তর্নির্মিত প্রধান উত্পাদক ফাংশন ব্যবহার করে, ÆRএবং দৈর্ঘ্য নেয় L

আমার ধারণা এটি প্রাইম ফ্যাক্টরিজেশন বিল্ট-ইনগুলি ব্যবহার করার মতোই বর্ডারলাইন, যা 3 বাইট লাগবে !Æv( !ফ্যাকটোরিয়াল, Ævপ্রাইম ফ্যাক্টরগুলি গণনা)


2

পিএইচপি, 96 92 বাইট

for($j=$argv[1]-1;$j>0;$j--){$p=1;for($i=2;$i<$j;$i++)if(is_int($j/$i))$p=0;$t+=$p;}echo $t;

রোমান গ্রাফকে 4 টি বাইট সংরক্ষণ করা হয়েছে

অনলাইন পরীক্ষা

অবহেলিত পরীক্ষার কোড:

$argv[1] = 5;

for($j=$argv[1]-1;$j>0;$j--) {
    $p=1;
    for($i=2;$i<$j;$i++) {
        if(is_int($j/$i)) {
            $p=0;
        }
    }
    $t+=$p;
}
echo $t;

অনলাইন পরীক্ষা


আপনি কেন isInt(...)?1:0এবং কেবল ব্যবহার করেন নাisInt(...)
রোমান গ্রাফ

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

2

এপিএল (ডায়ালগ ইউনিকোড) , 13 বাইট এসবিসিএস

2+.=0+.=⍳∘.|⍳

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

d ndices 1…
 N⧽ ∘.| অবশিষ্ট টেবিল (এই দুটি
অক্ষকে অক্ষ হিসাবে ব্যবহার করে) ɩ ndices 1… N

0+.= শূন্যের সমান উপাদানের যোগফল (অর্থাত প্রত্যেকটিতে কতগুলি বিভাজক থাকে)

2+.= দুটি সমান উপাদানের যোগফল (অর্থাত্ সেখানে কতগুলি প্রাথমিক)


2

পাইথন 3, 40 বাইট

f=lambda n:1if n<1else(2**n%n==2)+f(n-1)

একটি বিজোড় পূর্ণসংখ্যার কে যদি 2 ** (কে -1) 1 মোড কে এর সাথে একত্রে হয় তবে এটি প্রধান। সুতরাং, আমরা কেবল এই শর্তটি পরীক্ষা করি এবং কে = 2 এর ক্ষেত্রে 1 যুক্ত করি।


2 ** n% n == 2 প্রাথমিক পরীক্ষা হিসাবে যথেষ্ট নয়
রোজলুপি

@ রোসলুপ তাই সে কারণেই এন == 0 এর বেস কেসটিতে 1 যোগ করা উচিত (এন = 2 কেস হিসাবে অ্যাকাউন্টে)।
সন্দীপ সিলওয়াল

2 ** n% n == 2 সাধারণভাবে পর্যাপ্ত নয় ... অনেকগুলি (আমার মনে রাখার মধ্যে অসীম) সংখ্যা রয়েছে যেখানে 2 ^ n% n = 2 যা প্রাইম নয়
রোজলুপুর

উদাহরণস্বরূপ 341 = 11 * 31 তবে (2 ^ 341) মোড 341 == 2
রোজলুপি

@ রসলুপ: আহ ঠিক আছে, আমি এটি সন্ধান করেছি। এই সংখ্যাগুলিকে ফেরমাট স্যুইচোড্রাইমস বলা হয় তবে এগুলি বেশ বিরল বলে মনে হয়: পি
সন্দীপ সিলওয়াল

2

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

এটি প্রাইম-ফ্যাক্টর পচে যাওয়া এড়ায়। এর জটিলতা হ'ল ও ( এন ²)।

:t!\~s2=s

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

:     % Range [1 2 ... n] (row vector)
t!    % Duplicate and transpose into a column vector
\     % Modulo with broadcast. Gives matrix in which entry (i,j) is i modulo j, with
      % i, j in [1 2 ... n]. A value 0 in entry (i,j) means i is divisible by j
~     % Negate. Now 1 means i is divisible by j
s     % Sum of each column. Gives row vector with the number of divisors of each j
2=    % Compare each entry with 2. A true result corresponds to a prime
s     % Sum

1

জাভাস্ক্রিপ্ট (ES6), 50 + 2 46 + 2 43 বাইট

সংরক্ষণ করা 3 5 বাইট নীল ধন্যবাদ:

f=n=>n&&eval(`for(z=n;n%--z;);1==z`)+f(n-1)

evalnপ্যারামিটার অ্যাক্সেস করতে পারেন । চেক যদি প্রধানমন্ত্রী হয়।
eval(...)n


পূর্ববর্তী সমাধান:
বাইট গণনাটি +2 হওয়া উচিত কারণ আমি ফাংশনটির নামকরণ করতে ভুলে গেছি f=(পুনরাবৃত্তির জন্য প্রয়োজনীয়)

46 + 2 বাইট (3 টি বাইট ETH উত্পাদনের জন্য ধন্যবাদ)

n=>n&&eval(`for(z=n=${n};n%--z;);1==z`)+f(n-1)

50 + 2 বাইট:

n=>n&&eval(`for(z=${n};${n}%--z&&z;);1==z`)+f(n-1)

1
কমপক্ষে আমার ব্রাউজারে, evalআপনার ফাংশনটিতে nপ্যারামিটারটি অ্যাক্সেস করতে পারে (যার নাম আপনি ভুলে গিয়েছিলেন, আপনার জন্য 2 বাইট দাম; এটি জেনে রাখা ভাল যে আমিই সেই ভুলটি করি না যে) আপনাকে 5 বাইট সংরক্ষণ করে।
নীল

@ নীল আমি এর জন্য জানতাম না eval। ফায়ারফক্স, ক্রোম এবং এজ দিয়ে পরীক্ষিত এটি আমার জন্য কাজ করেছিল। ব্যাখ্যা Eval () বিবৃতি প্রসঙ্গে পার্স । দুটি উদাহরণ: a=12;f=b=>eval('a + 5');f(8)প্রদর্শন 17এবং a=12;f=a=>eval('a + 5');f(8)প্রদর্শন 13
হেডি

1

জাভা 7,102 বাইট

পাশবিক বল

int f(int n){int i=2,j=2,c=1,t=0;for(;i<=n;j=2,c+=t==1?1:0,i++)for(;j<i;t=i%j++==0?j=i+1:1);return c;}

Ungolfed

int f(int n){
int i=2,j=2,c=1,t=0;
for(;i<=n;j=2,c+=t==1?1:0,i++)
    for(;j<i;)
        t=i%j++==0?j=i+1:1;
    return c;
 }

এটি বর্তমানে ইনপুটটির জন্য একটি ভুল ফলাফল দিচ্ছে 1। এটি বর্তমানে 1পরিবর্তে ফিরে আসে 0। হয় আপনি পরিবর্তন করে এই ঠিক করতে পারবো return c;করার return n<2?0:c;বা পরিবর্তন ,c=1,করার জন্য ,c=n<2?0:1,
কেভিন ক্রুইজসেন 12'17


1

আসলে, 10 বাইট

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

R`;D!²%`MΣ

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

         Implicit input n.
R        Push range [1..n]
`...`M   Map the following function over the range. Variable k.
  ;        Duplicate k.
  D        Decrement one of the copies of k.
  !²       Push ((k-1)!)².
  %        Push ((k-1)!)² % k. This returns 1 if k is prime, else 0.
Σ        Sums the result of the map, adding all the 1s that represent primes, 
          giving the total number of primes less than n.
         Implicit return.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.