ফি গণনা করুন (পাই নয়)


73

না, আমি বলতে চাইছি না ϕ = 1.618...এবং π = 3.14159...। আমি ফাংশন মানে ।

  • φ (x) এর চেয়ে কম বা সমান পূর্ণসংখ্যার সংখ্যা xযে অপেক্ষাকৃত প্রধানমন্ত্রীর হয় x
  • π (x) হল প্রাইমের সংখ্যা কম বা সমান x
  • ধরুন যে, "না পাই" তাহলে থাকা অবস্থায়ও পাইয়ের মান (x) এর এবং সংখ্যা হতে এটি সংজ্ঞায়িত composites বা সমান কম x

কার্য

কঠোরভাবে ধনাত্মক পূর্ণসংখ্যা দেওয়া হয়েছে x, φ (π̅ (x)) গণনা করুন । স্কোরিং বাইটে রয়েছে।

উদাহরণ

প্রতিটি লাইনে ইনপুট থাকে (1 থেকে 100, সমেত) এবং সংশ্লিষ্ট আউটপুট একটি স্পেস দ্বারা পৃথক করে।

1 0 
2 0 
3 0 
4 1 
5 1 
6 1 
7 1 
8 2 
9 2 
10 4 
11 4 
12 2 
13 2 
14 6 
15 4 
16 6 
17 6 
18 4 
19 4 
20 10 
21 4 
22 12 
23 12 
24 6 
25 8 
26 8 
27 16 
28 6 
29 6 
30 18 
31 18 
32 8 
33 12 
34 10 
35 22 
36 8 
37 8 
38 20 
39 12 
40 18 
41 18 
42 12 
43 12 
44 28 
45 8 
46 30 
47 30 
48 16 
49 20 
50 16 
51 24 
52 12 
53 12 
54 36 
55 18 
56 24 
57 16 
58 40 
59 40 
60 12 
61 12 
62 42 
63 20 
64 24 
65 22 
66 46 
67 46 
68 16 
69 42 
70 20 
71 20 
72 32 
73 32 
74 24 
75 52 
76 18 
77 40 
78 24 
79 24 
80 36 
81 28 
82 58 
83 58 
84 16 
85 60 
86 30 
87 36 
88 32 
89 32 
90 48 
91 20 
92 66 
93 32 
94 44 
95 24 
96 70 
97 70 
98 24 
99 72 
100 36

যে কোনও ইনপুটটির জন্য প্রত্যাশিত আউটপুট গণনা করতে এই লিঙ্কটি ব্যবহার করুন। এছাড়াও, ইনপুট এবং আউটপুটগুলির একটি তালিকা এখানে পেস্টবিনেx <= 1000 সরবরাহ করা হয়েছে । ( এই মিনকোলং প্রোগ্রামটি দিয়ে তৈরি করা হয়েছে ))


লিডারবোর্ড

নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

## Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

## Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

## Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


ইনপুট আকারের সীমা আছে?
lirtosiast

4
এই প্রশ্নটি কি ফিলনটপি ব্যবহারকারী ?
Primo

24
@ প্রিমো আপনি কেন এমন ভাববেন?
মেগো

2
@ প্রিমো: এটি তাঁর নামের দ্বারা অনুপ্রাণিত হয়েছিল, এবং অবশ্যই এটির জন্য একটি শাস্তি ছিল, তবে তার কাছে একেবারে শ্রদ্ধা নয় not
এল'েন্ডিয়া স্টারম্যান

1
@ এডসি 65: হ্যাঁ, দৃশ্যত তাই , যেমনটি আমি গতকাল খুঁজে পেয়েছি।
এল'েন্ডিয়া স্টারম্যান

উত্তর:


27

জিএস 2 , 12 10 বাইট

V@'◄l.1&‼l

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

টেস্ট রান

$ xxd -r -ps <<< 564027116c2e3126136c > phinotpi.gs2
$ wc -c phinotpi.gs2 
10 phinotpi.gs2
$ gs2 phinotpi.gs2 <<< 1000
552

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

V          Read an integer n from STDIN.
 @         Push a copy of n.
  '        Increment the copy of n.
   ◄l      Push 1 and call primes; push the list of all primes below n+1.
     .     Count the primes.
      1    Subtract the count from n.
       &   Decrement to account for 1 (neither prime nor composite).
        ‼l Push 3 and call primes; apply Euler's totient function.

25
ফাইলটির নাম প্রোগ্রামের চেয়ে দীর্ঘ।
ফ্লোরিস

43

রেজেক্স (। নেট), 122 113 বাইট

^(?=((?=.*$(?<=^(\3+(.+.))(.*?(?>(.\4)?)))).)+(.*))((?=.*(?=\6$)(?<=(?!(.+.)\8*(?=\6$)(?<=^\8+))(.+?(?>\9?)))).)+

ধরে নিচ্ছি ইনপুট এবং আউটপুট অচেনা অবস্থায় রয়েছে এবং আউটপুটটি রেজেক্সের মূল ম্যাচ থেকে নেওয়া হয়।

রেজেক্সের ভাঙ্গন:

  • ^(?=((?=.*$(?<=^(\3+(.+.))(.*?(?>(.\4)?)))).)+(.*)) π̅ (x) গণনা করে এবং দ্বিতীয় অংশে দৃser়তার জন্য গ্রুপ 6 capt ক্যাপচারে বাকী স্ট্রিং ক্যাপচার করে।

    • .*$স্ট্রিংয়ের শেষে পয়েন্টারটি সেট করে যাতে আমাদের xএক দিকের পুরো সংখ্যা থাকে।
    • (?<=^(\3+(.+.))(.*?(?>(.\4)?))) ডান থেকে বামে মিলছে এবং এক্স থেকে 0 পর্যন্ত লুপ করে সংমিশ্রিত সংখ্যার জন্য পরীক্ষা করে।
      • (.*?(?>(.\4)?))একটি "পরিবর্তনশীল" যা প্রথম পুনরাবৃত্তির 0 থেকে শুরু হয় এবং পূর্ববর্তী পুনরাবৃত্তির সংখ্যার থেকে অবধি এবং এক্স পর্যন্ত লুপ হয়। যেহেতু ক্ষুদ্রতম সংমিশ্র সংখ্যাটি 4, তাই 4 (.\4)?গ্রুপ ক্যাপচারিং উপলব্ধ থাকলে কখনও মিলতে ব্যর্থ হয়।
      • ^(\3+(.+.))উপরে "ভেরিয়েবল" দ্বারা কী অবশিষ্ট রয়েছে তা যাচাই করে (যেমন x - "variable") এটি কোনও সম্মিলিত সংখ্যা কিনা।
  • ((?=.*(?=\6$)(?<=(?!(.+.)\8*(?=\6$)(?<=^\8+))(.+?(?>\9?)))).)+বাম থেকে ডান ক্রিয়াকলাপটি সীমাবদ্ধ করে φ (π̅ (x)) গণনা করে (?=\6$)

    • .*(?=\6$)পয়েন্টারটিকে অবস্থান to (x) এ সেট করে। যাক y = π̅ (x) বোঝান।
    • (?<=(?!(.+.)\8*(?=\6$)(?<=^\8+))(.+?(?>\9?))) ডান থেকে বামে মিলছে এবং (y - 1) থেকে 0 পর্যন্ত লুপিং করে আপেক্ষিক প্রাইমের জন্য পরীক্ষা করে
      • (.+?(?>\9?)) একটি "পরিবর্তনশীল" যা প্রথম পুনরাবৃত্তির 1 থেকে শুরু হয় এবং পূর্ববর্তী পুনরাবৃত্তির সংখ্যা থেকে অব্যাহত থাকে এবং y পর্যন্ত লুপ হয়
      • (?!(.+.)\8*(?=\6$)(?<=^\8+))বাম থেকে ডান 1 পর্যন্ত মিলবে এবং "ভেরিয়েবল" এবং y আপেক্ষিক প্রধান কিনা তা পরীক্ষা করে।
        • (.+.)\8*(?=\6$) "ভেরিয়েবল" এর একটি বিভাজক বেছে নেয় যা 1 এর চেয়ে বড় এবং একটি পার্শ্ব প্রতিক্রিয়া হ'ল আমাদের বামে পুরো সংখ্যাটি y।
        • (?<=^\8+) "ভেরিয়েবল" এর বিভাজক y এর বিভাজক কিনা তা পরীক্ষা করে।

1 .NET সালে দেখুন সম্মতি সেট করে পরিবর্তে বর্তমান অভিমুখ নিম্নলিখিত LTR অভিমুখ; চেহারা-পিছনে সেট করে দিক reversing পরিবর্তে আরটিএল অভিমুখ।

RegexStorm এ রেজেক্স পরীক্ষা করুন ।

রিভিশন 2 ড্রপ নন-ক্যাপচারিং গ্রুপ এবং শর্তসাপেক্ষ সিনট্যাক্সের পরিবর্তে পারমাণবিক গ্রুপ ব্যবহার করে।


24
স্যার আপনি পাগল হয়ে গেছেন
আরকে

9
আমার মনে হয় সে জালগোয়ের স্পর্শ পেয়েছে।
কৌতূহলীনি

11
এবং এখন আপনার দুটি সমস্যা আছে। (রেগেক্সের সাহায্যে আপনি এই জাতীয় কাজটি করতে পারবেন এমন গুরুত্বের সাথে ধারণা ছিল না ...)
ড্যারেল হফম্যান

21

জে, 15 14 বাইট

5 p:<:-_1 p:>:

এটি একটি স্বতন্ত্র, একাকী ক্রিয়া এটি J.js এর সাথে অনলাইনে ব্যবহার করে দেখুন

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

                Right argument: y
            >:  Increment y.
       _1 p:    Calculate the number of primes less than y+1.
    <:          Decrement y.
      -         Calculate the difference of the results to the left and right.
5 p:            Apply Euler's totient function to the difference.

14
আমি হজ ব্যাখ্যা করতে পারি? : পি
anOKsquirrel

23
আমি হজ যোগ করেছেন ব্যাখ্যা
ডেনিস

5
আমি বলতে যাচ্ছিলাম যে আমি এটিকে উজ্জীবিত করেছি কারণ এতে প্রচুর স্মাইলি রয়েছে তবে পাঠ্যটি আমাকে এড়াতে বলেছিল :(
ডডি

@ ডেনিস: আপনার প্রথম জবাব আমাকে বেশ শক্ত করে হাসিয়ে দিয়েছে, তার জন্য ধন্যবাদ!
মেহরদাদ

19

গুরুতরভাবে , 27 বাইট

,;R`p`MΣ(-D;n;;╟@RZ`ig1=`MΣ

হ্যাঁ, আমি সিজেমকে মারলাম! এটি অনলাইনে চেষ্টা করুন

ব্যাখ্যা ( aস্ট্যাকের শীর্ষকে bবোঝায়, দ্বিতীয় থেকে শীর্ষকে বোঝায়):

,;       take input and duplicate it
R`p`MΣ   push sum([is_prime(i) for i in [1,...,a]]) (otherwise known as the pi function)
(-D      rotate stack right by 1, subtract top two elements, subtract 1, push
            (@ could be used instead of (, but I was hoping the unmatched paren would bother someone)
;n;;     dupe top, push a b times, dupe top twice (effectively getting a a+1 times)
╟        pop n, pop n elements and append to list, push
@        swap top two elements
RZ       push [1,...,a], zip a and b
`ig1=`   define a function:
  i        flatten list
  g1=      compute gcd(a,b), compare to 1 (totient function)
MΣ       perform the function a on each element of b, sum and push

দ্রষ্টব্য: এই উত্তরটি পোস্ট করার পরে, আমি পাই এবং ফাই ফাংশনগুলি সিরিয়াসলি যুক্ত করেছি। এই ফাংশনগুলির সাথে এখানে একটি অপ্রতিযোগিতামূলক উত্তর:

,;▓1-@-▒

ব্যাখ্যা (কিছু কমান্ড অন্যকে ওভারল্যাপ না করে স্থানান্তরিত করা হয়):

,    get input (hereafter referred to as x)
;    duplicate x
 ▓   calculate pi(x) (we'll call this p)
1-   calculate 1-p
@-   bring x back on top, calculate x-1-p (not pi(x))
  ▒  calculate phi(not pi(x))

1
আপনি @ ডেনিস মারাত্মকভাবে আউটগলফড করেছেন!
তানমাথ

আপনার মাথার শীর্ষে এটি জানতেন দয়া করে আমাকে বলবেন না ..
DividedByZero

1
জিজে সিজেমকে মারধর করছে =)
flawr

14

জুলিয়া, 52 50 বাইট

x->count(i->gcd(i,p)<2,1:(p=x-endof(primes(x))-1))

এটি একটি নামবিহীন ফাংশন তৈরি করে যা গ্রহণ করে এবং পূর্ণসংখ্যা এবং পূর্ণসংখ্যা প্রদান করে। এটি কল করার জন্য, এটির একটি নাম দিন f=x->...

Ungolfed:

function phinotpi(x::Integer)
    # The number of composites less than or equal to x is
    # x - the number of primes less than or equal to x -
    # 1, since 1 is not composite
    p = x - length(primes(x)) - 1

    # Return the number of integers i between 1 and p such
    # that gcd(i, p) = 1. This occurs when i is relatively
    # prime to p.
    count(i -> gcd(i, p) == 1, 1:p)
end

কয়েকটি অক্ষর সংরক্ষণ করার sumপরিবর্তে ব্যবহার করুন count। এটি কিছুটা হতাশার, যদিও - প্রাইমগুলি গণনা করার অন্য উপায় sum(isprime,1:x), হ'ল দৈর্ঘ্যের সমান endof(primes(x))
গ্লেন ও

1
@ গ্লেনো এই পরামর্শের জন্য ধন্যবাদ, তবে 0 ফেরত দেওয়ার sumসময় খালি সংগ্রহের ক্ষেত্রে ব্যর্থ হয়। countসুতরাং এর sumজন্য কাঙ্ক্ষিত ফলাফল পাওয়া যাবে না x<4
অ্যালেক্স এ

8

গণিত, 24 বাইট

EulerPhi[#-PrimePi@#-1]&

2
এর অবশ্যই ম্যাথামেটিকাল এই ... নির্মিত সব আছে
হাততালির শব্দ

@ কনফিউজড এমআর_সি স্পষ্টতই :) তবে, এটি একটি স্পষ্ট কারণের জন্য অযোগ্য ঘোষণা করা হয়নি: গাণিতিক সফ্টওয়্যার সাধারণ সংমিশ্রনিক কাজে গল্ফিং ল্যাঙ্গুজেসকে পরাস্ত করতে পারে না :)
'

@ কনফিউজড এমআর_সি PhiNotPi@#&: 11 বাইট: পি
লিজিওন ম্যাম্মেল 978

8

পাইথ, 14 বাইট

JlftPTSQ/iLJJ1

বিক্ষোভ , যাচাইকারী

আমরা একটি সাধারণ ফিল্টার ব্যবহার করে কম্পোজিটগুলি গণনা করি, এর দৈর্ঘ্য নিয়েছি এবং এতে সংরক্ষণ করি J। তারপরে, আমরা Jপ্রতিটি সংখ্যা পর্যন্ত জিসিডি নিয়ে থাকি Jএবং কত ফলাফল সমান 1 বলে গণনা করি।


7

মিনকোলং 0.11 , 12 বাইট (প্রতিযোগিতামূলক নয়)

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

nd9M-1-9$MN.

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

ব্যাখ্যা

n      Read in integer from input
d      Duplicate
9M     Pops off the top of stack as x and pushes pi(x)
-      Subtracts the top two elements on the stack (x - pi(x))
1-     Subtracts 1 (x-1 - pi(x))
9$M    Pops off the top of stack as x and pushes phi(x) (phi(x-1 - pi(x)))
N.     Outputs as integer and stops.

2
আমি অবৈধ উত্তরগুলি প্রকাশ করা একটি ভাল ধারণা বলে মনে করি না ...
ইয়েতি

20
যতক্ষণ না তাদের অস্বীকৃতি রয়েছে ততক্ষণ আমি মনে করি না যে এতে কোনও সমস্যা আছে। পুরানো চ্যালেঞ্জের জন্য এটি আসলে বেশ সাধারণ।
ডেনিস

4
@ ইয়েতি: প্রযুক্তিগতভাবে, এটি অবৈধ নয়। চ্যালেঞ্জ পোস্ট হওয়ার আগে এখানে ব্যবহৃত সমস্ত বৈশিষ্ট্য প্রয়োগ করা হয়েছিল। আমি কেবলমাত্র এটিকে অযোগ্য ঘোষণা করি কারণ দুটি নির্দিষ্ট বৈশিষ্ট্য কার্যকর না হওয়া পর্যন্ত আমি চ্যালেঞ্জ পোস্ট করতে বিলম্ব করেছি (যা আমি ঘটনাক্রমে উদাহরণের তালিকা তৈরি করতে ব্যবহার করি))
এল'েন্ডিয়া স্টারম্যান

1
একই। 𝔼𝕊𝕄𝕚𝕟 আপডেট হতে থাকে এমন সময় আমি এটি অনেক কিছু করি।
মামা ফান রোল

6

সিজেম, 28 বাইট

ri){mf1>},,_,f{){_@\%}h)=}1b

এটি ব্যবহার করে দেখুন এই বেহালার CJam অনুবাদক অথবা একবার এ সব পরীক্ষার বিষয় যাচাই

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

ri                            Read an integer N from STDIN.
  )                           Increment it. 
   {    },                    Filter; for each I in [0 ... N]:
    mf                          Push I's prime factorization.
      1>                        Discard the first prime.
                              If there are primes left, keep I.
          ,                   Count the kept integers. Result: C
           _,                 Push [0 ... C-1].
             f{          }    For each J in [0 ... C-1], push C and J; then:
               )                Increment J.
                {    }h         Do:
                 _                Push a copy of the topmost integer..
                  @               Rotate the integer below on top of it.
                   \%             Take that integer modulo the other integer.
                                If the residue is non-zero, repeat the loop.
                                This computes the GCD of C and J+1 using the
                                Euclidean algorithm.
                       )        Increment the 0 on the stack. This pushes 1.

                        =     Push 1 if the GCD is 1, 0 if not.
                          1b  Add all Booleans.

আমি "সব ক্ষেত্রে যাচাই করুন" লিঙ্কটি চেষ্টা এবং এই পেয়েছিলাম: 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111। এটা কি সঠিক?
এল'েন্দিয়া স্টারম্যান

হ্যাঁ, এটি পরীক্ষা করে যে কোডটি বাম কলামে (ইনপুট) ডান কলামের (আউটপুট) সমান হয়।
ডেনিস

5
আমি ডিস 1 এ হ্যাজ ব্যাখ্যা করতে পারি?
anOKsquirrel

9
@ অ্যানোকসকুইরেল আই হ্যাজ ডিস ডিস 2 2
ডেনিস

5
@ ডেনিস kthxbai
anOKsquirrel

5

পাইথন, 137 139

n=input()
print n,len([b for b in range(len([a for a in range(n)if not all(a%i for i in xrange(2,a))]))if all(b%i for i in xrange(2,b))])

2
আমার মনে হয় আপনি মধ্যে শূণ্যস্থান সরিয়ে 2 বাইট সংরক্ষণ করতে পারবেন range(n) ifএবং])) if
DankMemes

3
পাইথনের তুলনামূলকভাবে কম গল্ফ-ক্ষমতা দেওয়া (সাদা জায়গার প্রয়োজনীয়তাগুলির কারণে) এটি বেশ চিত্তাকর্ষক!
ফেলিক্সপো

@ ড্যাঙ্কমেমস, টিপটির জন্য ধন্যবাদ!
wnnmaw

5

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

.+
$*
M&`(..+)\1+$
.+
$*
(?!(..+)\1*$(?<=^\1+)).

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

ব্যাখ্যা

.+
$*

ইনপুটটিকে আনারিতে রূপান্তর করুন।

M&`(..+)\1+$

কমপক্ষে 2 এর একটি ফ্যাক্টরের কমপক্ষে দুটি পুনরাবৃত্তি সমন্বিত একটি স্ট্রিংয়ের সাথে আমরা কতবার মিল করতে পারি তা গণনা করে সংমিশ্রণ সংখ্যাগুলি ইনপুটটির চেয়ে বড় নয়।

.+
$*

আবার ইউনারিতে রূপান্তর করুন।

(?!(..+)\1*$(?<=^\1+)).

গণনা করুন many অবস্থান থেকে প্রত্যয়টির একটি উপাদান (কমপক্ষে 2 এর) খুঁজে পাওয়া সম্ভব নয় যা গণনা করে উপসর্গেরও একটি কারণ (যদি আমরা এরূপ একটি উপাদান খুঁজে পাই তবে এই i <= nউপাদানটির সাথে ভাগ করে nসুতরাং এটি কপিরাইট নয়)। .শেষে নিশ্চিত করে যে আমরা শূন্য গণনা করা হয় না (যার জন্য আমরা অন্তত 2 এর উত্পাদকের খুঁজে পাচ্ছি না)।


5

Regex (.NET), 88 86 বাইট

^(?=((?=(..+)\2+$)?.)+)(?=(?<-2>.)*(.+))(?=(((?!(..+)\6*(?<=^\6+)\3$))?.)*\3)(?<-5>.)*

এটি অনলাইন চেষ্টা করুন! (রেটিনা প্রোগ্রাম হিসাবে))

Nahh̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̸̡̅ẗ̵̨́i এর উত্তর হিসাবে একই I / O ব্যবহার করে, যেমন আনারি ইনপুট এবং এটি ফলাফলের দৈর্ঘ্যের একটি স্ট্রিংয়ের সাথে মেলে।

এক বা উভয় ভারসাম্যপূর্ণ দলকে সামনের দিকে উল্লেখ সহ প্রতিস্থাপনের মাধ্যমে এটি আরও ছোট করা সম্ভব।

একই বাইট গণনায় বিকল্প:

^(?=((?=(..+)\2+$)?.)+)(?=(?<-2>.)*(.+))(?=(?((..+)\4*(?<=^\4+)\3$).|(.))*\3)(?<-5>.)*

প্রথমার্ধের জন্যও কিছু বিকল্প রয়েছে, যেমন যৌগিক সংখ্যার জন্য ধনাত্মকটির পরিবর্তে নেতিবাচক চেহারা অবলম্বন করা বা সেখানে শর্তযুক্ত ব্যবহার করা।

ব্যাখ্যা

আমি ধরে নেব যে আপনার ভারসাম্যপূর্ণ গোষ্ঠীগুলির সম্পর্কে প্রাথমিক ধারণা আছে তবে সংক্ষেপে, .NET এ ক্যাপচার করা গোষ্ঠীগুলি স্ট্যাক (তাই প্রতিবার আপনি যখন ক্যাপচারকারী গ্রুপটিকে পুনরায় ব্যবহার করবেন তখন নতুন ক্যাপচারটি শীর্ষে চাপানো হবে) এবং (?<-x>...)স্ট্যাক থেকে একটি ক্যাপচারকে পপ করবে x। এটি জিনিস গণনা করার জন্য খুব সহায়ক।

^                   # Only look at matches from the beginning of the input.
(?=                 # First, we'll compute the number of composites less than
                    # or equal to the input in group 2. This is done in a
                    # lookahead so that we don't actually advance the regex
                    # engine's position in the string.
  (                 #   Iterate through the input, one character at a time.
    (?=(..+)\2+$)?  #     Try to match the remainder of the input as a
                    #     composite number. If so the (..+) will add one
                    #     one capture onto stack 2. Otherwise, this lookahead
                    #     is simply skipped.
    .
  )+
)
(?=                 # It turns out to be more convienient to work with n minus
                    # the number of composites less than or equal to n, and to
                    # have that a single backreference instead of the depth of
                    # a stack.
  (?<-2>.)*         #   Match one character for each composite we found.
  (.+)              #   Capture the remainder of the input in group 3.
)
(?=                 # Now we compute the totient function. The basic idea is
                    # similar to how we computed the number of composites,
                    # but there are a few differences.
                    # a) Of course the regex is different. However, this one
                    #    is more easily expressed as a negative lookahead (i.e.
                    #    check that the values don't share a factor), so this
                    #    won't leave a capture on the corresponding stack. We
                    #    fix this by wrapping the lookahead itself in a group
                    #    and making the entire group optional.
                    # b) We only want to search up the number of composites,
                    #    not up to the input. We do this by asserting that we
                    #    can still match our backreference \3 from earlier.

  (                 #   Iterate through the input, one character at a time.
    ((?!            #     Try not to match a number that shares a factor with
                    #     the number of composites, and if so push a capture
                    #     onto stack 5.
      (..+)\6*      #     Look for a factor that's at least 2...
      (?<=^\6+)     #     Make sure we can reach back to the input with that
                    #     factor...
      \3$           #     ...and that we're exactly at the end of the number
                    #     of composites.
    ))?
    .
  )*
  \3                #   Match group 3 again to make sure that we didn't look
                    #   further than the number of composites.
)
(?<-5>.)*           # Finally, match one character for each coprime number we
                    # found in the last lookahead.


4

জেলি , অ-প্রতিযোগিতামূলক

7 বাইট এই উত্তরটি প্রতিযোগিতামূলক নয়, কারণ এটি এমন একটি ভাষা ব্যবহার করে যা চ্যালেঞ্জকে পোস্টডেট করে।

ÆC_@’ÆṪ

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

ÆC_@’ÆṪ  Input: n

ÆC       Count the primes less than or equal to n.
    ’    Yield n - 1.
  _@     Subtract the count from n - 1.
     ÆṪ  Apply Euler's totient function.

3

অষ্টাভ, 52 51

@(b)nnz((d=[1:(c=b-1-nnz(primes(b)))])(gcd(d,c)<2))

সম্পাদনা করুন: টমাস কোয়াকে ধন্যবাদ 1 বাইট সংরক্ষিত

ব্যাখ্যা:

@(b)                                            # Define anonymous func with parameter b
  nnz(                                          # Count elements in φ(c)
    (                                           #
      d = [1:                                   # Create d= array of 1 to π̅(b)
            ( c = b - 1 - nnz(primes(b)) )      # Calculate c=π̅(b) by subtracting the
                                                #  number of elements in the array of prime
          ]                                     #  numbers from the number of ints in 2:b
    )(gcd(d, c) < 2)                            # Calculate φ(c) by using gcd to filter
  )                                             # relative primes from d


3

সেজম্যাথ 26 বাইট

euler_phi(n-1-prime_pi(n))

এমনকি সেজ এর বাস্তবায়নের জন্য n=0এবং এমনকি ভাল কাজ করে n=1


3

জেলি , 6 বাইট

_ÆC’ÆṪ

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

এই মধ্যে একটি সহযোগিতা caird coinheringahhing এবং জনাব Xcoder মধ্যে চ্যাট

ব্যাখ্যা

_ÆC'ÆṪ ~ সম্পূর্ণ প্রোগ্রাম।

 ~C Z জেড এর চেয়ে কম বা সমান প্রাইমগুলি গণনা করুন।
_ The ইনপুট থেকে বিয়োগ করুন।
   'Re হ্রাস।
    Ule ~ ইউলারের মোট কার্যকারিতা।



2

এমএটিএল , 9 বাইট (প্রতিদ্বন্দ্বী)

এই উত্তরটি প্রতিদ্বন্দ্বিতামূলক নয়, কারণ ভাষা চ্যালেঞ্জ পোস্ট করে।

:Zp~sq_Zp

ব্যবহার সংস্করণ (10.1.0) ভাষা / কম্পাইলার করুন।

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

ব্যাখ্যা

:       % implicitly input a number "N" and produce array [1,2,...,N]
Zp      % true for entries that are prime
~       % negate. So it gives true for entries of [1,2,...,N] that are non-prime
s       % sum elements of array. So it gives number of non-primes
q       % subtract 1. Needed because number 1 is not prime, but not composite either
_       % unary minus
Zp      % with negative input, computes totient function of absolute value of input
        % implicit display

2

জিএপি, 33 বাইট

n->Phi(n-Number([-2..n],IsPrime))

Number(l,p)lসন্তুষ্ট হতে কতগুলি উপাদান গণনা করে p। 1 টি প্রাইম বা যৌগিক নয় এই সত্যটির জন্য ক্ষতিপূরণ দিতে, আমাকে এন থেকে শুরু করে এন পর্যন্ত প্রাইমের সংখ্যার চেয়ে আরও একটি বিয়োগ করতে হবে। -1দুটি বাইটের জন্য না করে আমি তালিকাটি 1 বা 2 এর পরিবর্তে -2 দ্বারা শুরু করব, এইভাবে আরও একটি সংখ্যা যুক্ত করব যা IsPrimeকেবলমাত্র একটি অতিরিক্ত বাইটের জন্য প্রধান বলে বিবেচিত হবে ।


2

পাইথন 3.5 - 130 বাইট

from math import*
def p(n,k,g):
 for i in range(1,n+1):k+=factorial(i-1)%i!=i-1
 for l in range(1,k):g+=gcd(k,l)<2      
 return g

যদি পি (এন, 0,0) হিসাবে ফাংশনটি পাস করা গ্রহণযোগ্য না হয় তবে +3 বাইট।

এটি উইলসনের উপপাদ্যটি কোনও সংখ্যার সংমিশ্রিত কিনা তা যাচাই করার জন্য এবং ফ্যাক্টরিয়াল ফাংশনের জন্য গণিতের মডিউলটিতে আমাকে কল করতে হবে তা ব্যবহার করে। পাইথন ৩.৫ গণিত মডিউলটিতে একটি জিসিডি ফাংশন যুক্ত করেছে।

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

দ্বিতীয় লুপটি তখন কমপিউজিট এবং ইনক্রিমেন্ট জি এর সংখ্যার উপর দিয়ে লুপ করবে যখন কেবল পাই এবং এল এর মান সহ-প্রধান হবে না।

g তারপরে এন এর চেয়ে কম বা সমান সংখ্যার সংখ্যার চেয়ে কম বা সমান মানের সংখ্যা g



1

05 এ বি 1 ই , 11 8 বাইট

LDpÈÏg<Õ

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

এটি প্রতিদ্বন্দ্বিতামূলক হতে পারে - 05AB1E কখন তৈরি হয়েছিল তা আমি খুঁজে পাই না।

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

L             # this gets us the list of numbers [1 .. a]
 D            # duplicates this list
  p           # applies isPrime to each element of the list, vectorised.
   È          # is the element even? (does 05AB1E not have a logical not?)
    Ï         # push elements of the first list where the same index in the 
              # second list is 1
     g<       # finds the length and subtracts 1 (as the list contains 1)
              # this is the not pi function
       Õ      # euler totient function


1

এপিএল NARS, 38 বাইট, 19 টি অক্ষর

{⍵≤3:0⋄13π¯1+⍵-2π⍵}

13π হ'ল মোট ফাংশন এবং 2π হল গণনা প্রধান ফাংশন <= এর আর্গুমেন্ট। পরীক্ষা

  b←{⍵≤3:0⋄13π¯1+⍵-2π⍵}     
  (⍳12),¨b¨⍳12
1 0  2 0  3 0  4 1  5 1  6 1  7 1  8 2  9 2  10 4  11 4  12 2 
  (95..100),¨b¨(95..100)
95 24  96 70  97 70  98 24  99 72  100 36

1

++ , 21 বাইট যুক্ত করুন

L,RþPbL1_dRdVÞ%bLG!!+

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

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

π¯(n)φ(n)π¯(n)φ(n)

π¯(n)

RþPbL1_

RþPþPbL1_x=π¯(n)

φ(n)

dRdVÞ%bLG!!+

xdRÞ%xxbL

n1nG!!

হ্যাঁ, আমি সত্যিই নতুন লাটেক্স চেষ্টা করে দেখতে চাইনি

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