Asal bit sayımlı asal sayılar


23

Görev

Verilen sıfır olmayan pozitif tamsayı n'e kadar olan ve bunlara dahil olan tüm negatif olmayan tamsayıları bulun , asal olan 1'sve 0'sikili gösterimlerindeki sayıları ve sayıları (baştaki sıfırları olmayan) da asaldır.

İşte bu ilk beş asal sayı.

17, 19, 37, 41, 79

10001, 10011, 100101, 101001, 1001111

Açıklamalar ve kurallar

  • Varsayılan G / Ç yöntemleri kabul edilir .
  • Cevap bir program veya fonksiyon olabilir.
  • Eğer böyle bir primer yoksa, o zaman çöp veya hiç bir şey çıkarmaz.
  • Standart boşluklar yasaktır.
  • 2 3 5 7Listeye giremediler çünkü ikili temsillerinde oluşma sayısı 0'sve 1'sasal değillerdi. 7İkili temsili olanları göz önünde bulundurun 111, burada 0sıfır kez meydana gelir ve sıfır asal değildir.
  • Yerleşik izin verilir.

  • Bayt cinsinden en kısa kod kazanır!

Test durumları

10
[]

100
[17, 19, 37, 41, 79]

150
[17, 19, 37, 41, 79, 103, 107, 109, 131, 137]


1
Belirli bir n altındaki tüm asalları sorarsınız , ancak kapsayıcı diyorsunuz. Hangisini kastediyorsun?
Riley,

... ortalama nedir ben @Riley all the numbers from 1....n. Nasıl basit bir şekilde ezileceğini bilmiyorum.
Gurupad Mamadapur


3
Açıkçası, herhangi bir tamsayı dizisinin herhangi bir sıralaması için, en küçük ilgi çekmeyen bir tamsayı dizisinin kendisi ilginç olabilir ve bu nedenle OEIS'e katılmaya layık olacaktır. Ergo,
OEIS,

9
Mathematica'nın OEIS'in dizilerinden daha fazla sayıda yerleşik içerip içermediğini merak ediyorum ...
Neil

Yanıtlar:


5

Jöle , 14 13 bayt

RBċþd`ÆPPTfÆR

Çevrimiçi deneyin!

Nasıl çalışır

RBċþd`ÆPPTfÆR  Main link. Argument: n

R              Range; yield [1, ..., n].
 B             Binary; convert each integer to base 2.
    d`         Divmod self; yield [n : n, n % n], i.e., [1, 0].
  ċþ           Count table; count the occurrences of 1 and 0 in each binary
               representation, yielding a pair of lists of length n.
      ÆP       Test each count for primality.
        P      Product; multiply the corresponding Booleans.
         T     Truth; get all indices of 1, yielding the list of integers in
               [1, ..., n] that have a prime amount of 0's and 1's.
           ÆR  Prime range; yield all primes in [1, ..., n].
          f    Filter; intersect the lists.

2
Bu d`​numara başka bir şey ...
ETHproductions

10

Python 2 , 106 102 100 bayt

k=m=1;p={0}
exec"p^={m%k*k,0};c=bin(k).count\nif{k,c('1'),c('0')-1}<p:print k\nm*=k*k;k+=1;"*input()

Çevrimiçi deneyin!

Arka fon

Asalları tanımlamak için, Wilson teorisinin bir sonucunu kullanırız :

corollary of Wilson's theorem

Nasıl çalışır

Biz başlatarak başlangıç k ve m olarak 1 ve p seti olarak {0} . M = 1 = 0! ² = (k - 1)! ² olduğuna dikkat edin . Hemen ardından, aşağıdaki kod n kez yürütülür , burada n , standart girdiden okunan tamsayıdır.

p^={m%k*k,0};c=bin(k).count
if{k,c('1'),c('0')-1}<p:print k
m*=k*k;k+=1

Doğal bir sonuç olarak m% k olacak 1 eğer k asal ve olduğu 0 aksi. Böylece, {m%k*k,0}set dönecektir {k, 0} ise k asal olup kümesi {0} aksi.

Eğer (ve sadece eğer) k asal ise, p bu noktada k içeremez çünkü , yerinde simetrik fark p setine kp^={m%k*k,0} ekleyecektir . Ayrıca, p içerecektir güncellemeden sonra 0 ve eğer sadece daha önce 0 içermiyorsa , p = 0 ise ve sadece k eşitse.

Aynı satırda, k'nin ikili gösterimindeki argümanının oluşumunu sayan c ile bir fonksiyon tanımlarız .c=bin(k).count

İkinci satır gerçek çıktıyı üretir. {k,c('1'),c('0')-1}oluşur kümesi döndürür k kendisi, resim bit sayısı k , ve sertleşmemiş bit sayısı k . Çıktı 0bbin(k) ile başladığından beri, baştaki 0'ıc('0') hesaba katarak azaltmamız gerekir .

Eğer hepsi asal ise, hepsi p'ye aittir , ki bu şu ana kadar k'ye kadar olan asal sayıları içerir (ve potansiyel olarak 0 ). Eğer k bir Mersenne numarası ise (yani sadece set bitleri varsa), 0c('0')-1 değerini verir . Mersenne sayıları tuhaf olduğundan, p olacak değil içeriyor 0 koşul başarısız olur, böylece.

(Potansiyel olarak) k yazdırdıktan sonra , m ile k² çarpılır . Yana m = (k-1)! ² güncelleme, önce m = k! ² ondan sonra. K artırıldıktan sonra m = (k-1)! ² ilişkisi tekrar kalır ve bir sonraki yineleme için hazırız.


9

Mathematica, 80 68 54 bayt

Select[p=PrimeQ;Range@#,p@#&&And@@p/@#~DigitCount~2&]&

açıklama

Select[p=PrimeQ;Range@#,p@#&&And@@p/@#~DigitCount~2&]&

       p=PrimeQ                                        (* Store prime check func. in p *)
Select[                                             ]  (* Select *)
                Range@#                                (* from a list {1..n} *)
                        p@#                            (* numbers that are prime *)
                           &&                          (* And *)
                                     #~DigitCount~2    (* whose digit counts in binary *)
                             And@@p/@                  (* are prime as well *)

8

JavaScript (ES6), 123 118 115 111 104 96 bayt

@Arnauld sayesinde 4 bayt kaydedildi

G=n=>n?G(n>>1,++a[n%2]):a.some(n=>(P=x=>n%--x?P(x):x)(n)-1)
F=n=>F(n-1,G(n,a=[0,0,n])||alert(n))

Üç tipik özyinelemeli fonksiyonların bir kombinasyonu. Diziyi ters sırada uyarır ve "çok fazla özyineleme" hatasıyla sona erer.

Test pasajı

(sayfaya çıkış yapacak şekilde değiştirildi)

Ana işlev, 104 baytlık bir dizi döndürür:

G=n=>n?G(n>>1,++a[n%2]):a.some(n=>(P=x=>n%--x?P(x):x)(n)-1)
F=n=>n?F(n-1).concat(G(n,a=[0,0,n])?[]:n):[]

Ayrıca başka bir bayt pahasına özyinelemeli olmayabilir:

G=n=>n?G(n>>1,++a[n%2]):a.some(n=>(P=x=>n%--x?P(x):x)(n)-1)
n=>[for(_ of Array(n))if(!G(--n,a=[0,0,n]))n]

İşte başladığım kişi: (@Arnauld sayesinde 6 bayt kaydedildi)

P=(n,x=n)=>n>1&--x<2||n%x&&P(n,x)
G=n=>n?G(n>>1,o+=n%2,t++):P(o)&P(t-o)
F=n=>n?F(n-1).concat(P(n)&G(n,o=t=0)?n:[]):[]

Bunu daha da golf oynamayı denedim ve bunu 104 baytta yapmayı başardım - daha sonra bu çözümü bulduğumu fark ettim (cevabın en altında). Bu olduğu zaman nefret etmiyor musun? : P

Ana işlevde özyinelemeli olmayan bir girişim (yine, aynı bayt sayısı):

n=>[for(i of Array(n))if(P(--n)&G(n,o=t=0))n]

Bu, ikili gösterimde kaç tane 0 ve 1 olduğunu saymanın kolay yolunu gösterir:

F=n=>n?F(n-1).concat([n,(G=x=>n.toString(2).split(x).length-1)(0),G(1)].some(n=>(P=x=>n%--x?P(x):x)(n)-1)?[]:n):[]

Dizi anlama ile aynı şey:

n=>[for(_ of Array(n))if(![--n,(G=x=>n.toString(2).split(x).length-1)(0),G(1)].some(n=>(P=x=>n%--x?P(x):x)(n)-1))n]

Bu, aynı şeyi yapmak için biraz daha zor bir yol alır:

F=n=>n?F(n-1).concat([n,(G=(x,w=n)=>w&&G(x,w>>1)+(w%2==x))(0),G(1)].some(n=>(P=x=>n%--x?P(x):x)(n)-1)?[]:n):[]

Ve bu, orijinal kadar kısa bir başka ilişkili rotayı takip ediyor:

F=n=>n?F(n-1).concat([n,o=(G=x=>x&&x%2+G(n>>++t))(n,t=0),t-o].some(n=>(P=x=>n%--x?P(x):x)(n)-1)?[]:n):[]

Yine, sekansı tersine sırayla uyarmasını sağlayarak 8 byte golf oynayabilirsiniz:

F=n=>F(n-1,[n,o=(G=x=>x&&x%2+G(n>>++t))(n,t=0),t-o].some(n=>(P=x=>n%--x?P(x):x)(n)-1)||alert(n))

Özyinelemeli olarak geçmek zorunda değilsin a. Sadece ilk çağrıda onu başlat G. (Bu, 4 bayt kurtarması gerekir.)
Arnauld,

@Arnauld Oh evet, teşekkürler! Bu eğlenceli :-)
ETHproductions

1
Vay bu çok düştü. Güzel iş
George Reith

6

Jöle , 17 16 bayt

BĠL€µ;LÆPẠ
ÆRÇÐf

Çevrimiçi deneyin!

Nasıl?

BĠL€µ;LÆPẠ - Link 1, hasPrimeBits: n  e.g. 7         or 13
B          - convert to binary        e.g. [1,1,1]  or [1,1,0,1]
 Ġ         - group indices            e.g. [1,2,3]  or [3,[1,2,4]]
  L€       - length of €ach           e.g. 3          or [1,3]
    µ      - monadic chain separation
     ;L    - concatenate length       e.g. [3,1]      or [1,3,2]
           -     this caters for the edge case of Mersenne primes (like 7), which have
           -     no zero bits, the length will be 1, which is not prime.
       ÆP  - isPrime?                 e.g. [1,0]      or [0,1,1]
         Ạ - All?                     e.g. 0          or 0

ÆRÇÐf - Main link: N
ÆR    - prime range (primes up to and including N)
   Ðf - filter keep those satisfying
  Ç   - last link (1) as a monad

1
Ah teşekkürler, bunu değiştirdiğini görüyorum, bu bir bayt kurtaracak.
Jonathan Allan,

1
Orada alfabe var. ẠBÇЀfĠ...
mbomb007

2
@ mbomb007 Evet, LƵ;Pher zaman beni şaşırtıyor .
Jonathan Allan

6

05AB1E , 14 bayt

ƒNpNbSD_‚OpP&–

Çevrimiçi deneyin!

açıklama

ƒ               # for N in [0 ... input]
 Np             # push N is prime
   Nb           # push N converted to binary
     S          # split into individual digits
      D_        # push an inverted copy
        ‚       # pair the 2 binary lists
         O      # sum them
          p     # elementwise check for primality
           P    # product of list
            &   # and with the primality of N
             –  # if true, print N

Hala bir fayda bulamıyorum , bu meydan okuma bunun için iyi görünüyordu, fakat daha uzun:FNb{.¡€gpONp+3QiN}})
Magic Octopus Urn

@carusocomputing: Ben de düşündüğüm benzer bir çözüm vardı, ancak bundan biraz daha uzun sürdü.
Emigna


4

Matl , 16 15 bayt

:"@tB!t~hshZp?@

Çevrimiçi deneyin!

:         % Input n (implicit). Push range [1 2 ... n]
"         % For each k in [1 2 ... n]
  @       %   Push k
  tB!     %   Duplicate. Binary expansion as an m×1 vector
  t~      %   Duplicate. Negate
  hs      %   Concatenate horizontally into an m×2 matrix. Sum of each column.
          %   This gives a 1×2 vector. However, for k==1 this gives the sum of
          %   the original 1×2 matrix (m==1). But fortunately it doesn't matter
          %   because 1 is not a prime anyway
  h       %   Concatenate horizontally into a 1×3 row vector
  Zp      %   Isprime function applied on each of those three numbers
  ?       %   If all gave true
    @     %     Push k
          %   End (implicit)
          % End (implicit)
          % Display (implicit)

4

Perl, 101 bayt

99 bayt kod + -nlbayrakları.

$r=q/^1?$|^(11+)\1+$/;for$@(2..$_){$_=sprintf"%b",$@;print$@if(1x$@)!~$r&y/01/1/dr!~$r&s/0//gr!~$r}

Çalıştırmak için:

perl -lne '$r=q/^1?$|^(11+)\1+$/;for$@(2..$_){$_=sprintf"%b",$@;print$@if(1x$@)!~$r&y/01/1/dr!~$r&s/0//gr!~$r}' <<< 150

Bazı kısa açıklamalar
$r , klasik birincil kontrol regex ( q/^1?$|^(11+)\1+$/) tutar.
2 ile giriş arasındaki tüm sayılar için
(1x$@)!~$r, sayının asal
y/01/1/dr!~$rolup olmadığını kontrol eder 0, ikili gösterimdeki sayının asal
s/0//gr!~$rolup olmadığını kontrol eder, ikili gösterimdeki sayının asal olup olmadığını kontrol 1eder.
(3 koşul karşılanırsa print$@yazdırır).


Açıklama için teşekkürler. Temelde regex ve biraz mantık
olanlarla

@Emigna Teşekkürler! Açıklamalar çok ayrıntılı değil (daha uzun açıklamalar yazmakta zorlanıyorum), ama sizin için yeterli olduğunu düşünüyorum :) daha kısa, işte burada)
Dada

1
Perl'i tanımayan biri olarak, alabildiğim her açıklamayı takdir ediyorum. Bir Perl programı yapmama yardımcı olmayacak, ancak kullanılan yöntemin arkasındaki mantığın bir kısmını anlıyorum, ki bu her zaman ilginç.
Emigna

3

Python, 129 125 123 bayt

Keşke sadece sıfır birincil olsaydı ...

p=lambda n:all(n%m for m in range(2,n))*n>1
lambda n:[i for i in range(n+1)if p(i)*all(p(bin(i)[2:].count(x))for x in'01')]

Çevrimiçi deneyin

İşlev p, >0sonunda sıfır için de çalışacak şekilde sonuçlanan birinci kontrol işlevidir -1. Anonim lambda, gerekli tüm koşulları kontrol eden lambdadır.


İşte bir dizi anlama kullanarak biraz farklı bir yöntem. Sonuç bir küme olacak. ( 124 bayt ):

p=lambda n:all(n%m for m in range(2,n))*n>1
lambda n:{i*p(i)*all(p(bin(i)[2:].count(x))for x in'01')for i in range(n+1)}-{0}

3

Perl 6 , 65 bayt

{grep {all($^a,|map {+$a.base(2).comb(~$_)},0,1).is-prime},0..$_}

Dene

Expanded:

{           # bare block lambda with implicit parameter 「$_」

  grep      # find all of the values where

  {         # lambda with placeholder parameter 「$a」

    all(    # all junction ( treat multiple values as a single value )

      $^a,  # declare parameter to block

      |\    # slip the following list into the outer list

      # get the count of 0's and 1's in the binary representation
      map

      {             # bare block lambda with implicit parameter 「$_」

        +           # turn to numeric ( count the values in the list )
        $a          # the outer parameter
        .base(2)    # in base 2
        .comb(~$_)  # find the characters that are the same as
      },0,1         # 0 or 1

    # ask if $a, count of 0's, count of 1's are all prime
    ).is-prime

  },

  0 .. $_ # Range from 0 to the input inclusive

}

3

Octave, 73 bayt

@(n)(p=primes(n))(all(isprime([s=sum(dec2bin(p)'-48);fix(log2(p))+1-s])))

Çevrimiçi Deneyin!

@(n)
    (p=primes(n))                           generate prime numbers
        (all(                               from them select those that
            isprime(                        are prime both
                [s=sum(dec2bin(p)'-48);     sum of 1s
                fix(log2(p))+1-s])))        and sum of 0s

2

CJam , 26 27 bayt

ri){mp},{2b_1-,mp\0-,mp&},p

Basit algoritma, daha fazla golf oynayacak.

EDIT: Unutulmuş n dahil oldu.

Çevrimiçi deneyin!

Eğlenmek için, bu çok benzer ve ayrıca 27 byte:

ri){_mp\2b_1-,mp\0-,mp&&},p

açıklama

ri                          e# Take an int as input
  ){mp},                    e# Take the range up and including to the input, 
                            e#   including only prime numbers
       {                    e# For each prime...
        2b_                 e# Convert it to binary and copy it
           1-,mp            e# Take the top binary number, remove 1's, check if the length 
                            e#   is prime
                \           e# Swap top elements
                 0-,mp      e# Do the same but remove 0's
                      &     e# And
                       },   e# Filter out primes for which the above block was false
                         p  e# Print nicely

2

Jöle , 14 bayt

BċÆPðÐf
ÆRç0ç1

Çevrimiçi deneyin!

Ne yazık ki, sadece @Dennis ile bağlanabildim, ancak algoritma biraz farklı görünüyor, bu yüzden yine de gönderiyorum.

açıklama

Yardımcı işlev (belirli bir bitin asal oluşumuna sahip olmayan liste öğelerini siler):

BċÆPðÐf
     Ðf   Filter {the first argument}, looking for truthy returns from
    ð     the preceding code, which takes two arguments:
B         Convert {the element being checked} to binary
 ċ        Count the number of occurrences of {the second argument}
  ÆP      Return true if prime, false if not prime

Ana program:

ÆRç0ç1
ÆR        Generate all primes from 2 to the input
  ç0      Call the subroutine to require a prime 0 count
    ç1    Call the subroutine to require a prime 1 count

2

Haxe, 169 171 bayt

function f(n,?p)return[for(j in(p=[for(i in 0...++n)i<2?0:i]))if(j>0){var x=j*2,y=0,z=0,k=j;while(k<n)p[k+=j]=0;while((x>>=1)>0)x&1>0?y++:z++;p[y]<1||p[z]<1?continue:j;}];

Çılgın bir şey değil. Temel olarak, yüksek primer olmayanları geçme ile aynı yinelemede 0/1 sayımının primalitesini değerlendiren değiştirilmiş bir Eratosthenes elek. Biraz boşlukla:

function f(n, ?p)
  return [ for (j in (p = [ for(i in 0...++n) i < 2 ? 0 : i ]))
    if (j > 0){
      var x = j * 2, y = 0, z = 0, k = j;
      while (k < n)
        p[k += j] = 0;
      while((x >>= 1) > 0)
        x & 1 > 0 ? y++ : z++;
      p[y] < 1 || p[z] < 1 ? continue : j;
    }
  ];

Ama bugün continueüçlü bir operatöre girebileceğimi öğrendim ve Haxe'nin umrunda bile değil.

Düzenleme: +2 çünkü nkapsayıcı bir üst sınır!


Hey, nkapsayıcı.
Gurupad Mamadapur

@GurupadMamadapur Haklısın, düzeltildi!
Aurel Bílý

2

Bash + GNU yardımcı programları, 129 126 123 114 111 109 bayt

seq '-fp()([ `factor|wc -w` = 2 ]);g()(dc -e2o${n}n|tr -cd $1|wc -c|p);n=%.f;p<<<$n&&g 0&&g 1&&echo $n' $1|sh

Çevrimiçi deneyin!

Çıktının artan sırada olmadığına dair yorumun farkına vardım - saymak yerine geri sayım yaparak 3 byte kapalı.

3 ek bayt kaydetmek için wc ile grep değiştirildi.

Bir değişken ortadan kaldırıldı (9 bayt daha fazla).

Değişken kullanılan yol faktörü - 3 bayt daha.

Sıra (2 bayt) ile golfçü yaptı.


2

Python, 172 170 168 159 154 133 130 bayt

p=lambda n:[i for i in range(1,n)if n%i==0]==[1]
lambda n:[i for i in range(n+1)if p(i)*all(p(bin(i)[2:].count(x))for x in'10')]

Kullanım: anonim lambda işlevini çağırın
Yöntemip , bir sayının asal olup olmadığını kontrol eder.


Gurupad Mamadapur sayesinde 2 + 2 + 9 = 13 bayt
kaydedildi mbomb007 sayesinde 5 bayt kaydedildi


1
Bunu kullanarak 2 tane daha vdef v(n):a=bin(n)[2:];return p(n)and(p(a.count('1'))and p(a.count('0')))
kazanabilirsiniz

1
Çok daha kısa bir -v=lambda a:p(a)and all(p(bin(a)[2:].count(x))for x in['1','0'])
Gurupad Mamadapur

2
Dizeler yinelenebilir. Böylece kullanabilirsiniz for x in'01'.
mbomb007

1

Pyke, 21 bayt

S#j_PI\0[jb2R/_P)I\1[

Burada dene!

S#j                   - for j in filter(range(1, input+1))
   _PI                -  if is_prime(j):
        [jb2R/_P)     -   function_[(a) = V
         jb2          -      base_2(j)
            R/        -     ^.count(a)
      \0         I    -   if function_[("0"):
                  \1[ -    function_[("1")

1

Groovy, 120 bayt

p={x->(2..<x).every{x%it!=0}&x>1|x==2}
{x->(1..x).findAll({y->p(y)&'10'.every{p(Integer.toBinaryString(y).count(it))}})}

Bu isimsiz bir kapanış.

Burada dene!




1

JavaScript (ES6), 110 bayt

B=n=>n?B(n>>1,v[n%2]++):v.every(n=>(P=i=>n%--i?P(i):1==i)(n))
F=(n,a=[])=>n?F(n-1,B(n,v=[0,0,n])?[n,...a]:a):a


Bu asallık testi işlevi ... sadece şaşırtıcı :-) Kendin yarattın mı?
ETHProductions

@ETHproductions Daha önce codegolf.stackexchange.com/a/91309/11182 adresinde değişiklik yapılmadığını gördünüz . Ayrıca 1 ve 0 sayma kodunuzu (gelebildiğim her şeyi boğdu) ödünç aldım ancak ne yazık ki bayt sayınızı da alamadım.
George Reith,

@ETHproductions İyi yakalamak teşekkürler! Önceki bir sürümünün eseri miydi
George Reith,

1

MATLAB, 50 bayt

@(n)all(isprime([n,sum(de2bi(n)),sum(~de2bi(n))]))

1

Haxe, 158 147 bayt

function p(n,x=1)return n%++x<1||n<2?x==n:p(n,x);function f(n){var q=n,t=0,o=0;while(q>0){t++;o+=q%2;q>>=1;}p(n)&&p(o)&&p(t-o)?trace(n):0;f(n-1);};

STDOUT çıkışına verilir ve "çok fazla özyineleme" hatasıyla sonlanır; örneğin ile arayın f(1000);. while156 bayt için hatasız bir döngü kullanabilirsiniz :

function p(n,x=1)return n%++x<1||n<2?x==n:p(n,x);function f(n){while(n>0){var q=n,t=0,o=0;while(q>0){t++;o+=q%2;q>>=1;}p(n)&&p(o)&&p(t-o)?trace(n):0;n--;}};

Üç bayt daha uzun olan bir aralık kullanmak:

function p(n,x=1)return n%++x<1||n<2?x==n:p(n,x);function f(n){for(i in 0...n+1){var q=i,t=0,o=0;while(q>0){t++;o+=q%2;q>>=1;}p(i)&&p(o)&&p(t-o)?trace(i):0;}};

Çevrimiçi test edin!


1

Pas, 147 bayt

fn f(x:u32){let p=|n|n>1&&(2..n).all(|x|n%x!=0);for n in 9..x+1{if p(n)&&p(n.count_ones())&&p(n.count_zeros()-n.leading_zeros()){print!("{} ",n)}}}

oyun alanı bağlantısı

count_ones, count_zerosVeleading_zeros yöntemler işe yaradı.

Biçimlendirilmiş versiyon

fn f(x: u32) {
    // primality test closure using trial division
    let p = |n| n > 1 && (2..n).all(|x| n % x != 0);

    for n in 9..x + 1 {
        if p(n) && p(n.count_ones()) && p(n.count_zeros() - n.leading_zeros()) {
            print!("{} ", n)
        }
    }
}

1

Perl 6 , 50 bayt

{grep {($_&+.base(2).comb(~0&~1)).is-prime},0..$_}

B2gills'in cevabındaki değişiklik , & bağlantı operatörünü kullanarak büyük etki yaratır.

Çevrimiçi deneyin!

Nasıl çalışır

{                                                }  # Lambda
                                            0..$_   # Range from 0 to the lambda argument.
 grep {                                   },        # Filter values satisfying:
       ($_                      ).is-prime          #  a) The Number itself is prime.
       (   +.base(2).comb(~0   )).is-prime          #  b) The count of 0's is prime.
       (   +.base(2).comb(   ~1)).is-prime          #  c) The count of 1's is prime.
          &                 &                       # Junction magic! :)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.