আমির্পস সন্ধান করুন!


20

একটি এমির্প হ'ল একটি নন-প্যালিনড্রোমিক প্রাইম যা বিপরীত হয়ে গেলে এটিও প্রধান।

বেস 10 emirps তালিকায় পাওয়া যাবে OEIS । প্রথম ছয়টি হ'ল:

13, 17, 31, 37, 71, 73

তবে বিপরীত নিয়মের কারণে প্রতিটি বেসে এমির্পস আলাদা। উদাহরণস্বরূপ, প্রথম ছয়টি বাইনারি ইমির্পস হ'ল:

Bin  | 1011, 1101, 10111, 11101, 101001, 100101
Dec  | (11 , 13  , 23   , 29   , 37    , 41   ) 

... এবং হেক্সাডেসিমালে, তারা হলেন:

Hex |  17, 1F, 35, 3B, 3D, 53
Dec | (23, 31, 53, 59, 61, 83)

মজার বিষয়: কোন emirps আছে ইউনারী যেমন প্রত্যেক সংখ্যা যে শব্দ কবিতা প্রভৃতি উলটা করিয়া পড়িলেও একই থাকে হয়।


চ্যালেঞ্জ

আপনার টাস্ক একটি ফাংশন (অথবা পুরো প্রোগ্রাম) যা দুটি প্যারামিটার নেয় তৈরি করা, এন এবং , এবং প্রথম একটি তালিকা তৈরি করে এন বেস emirps

/ বিবরণ নিয়মাবলী:

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

পরীক্ষার মামলা

প্রতিটি পরীক্ষার ক্ষেত্রে, আমি বেস bএবং এর বেস 10 সমমানের তালিকায় তালিকাটি অন্তর্ভুক্ত করেছি ।

B = 2, N = 10

BIN: [1011, 1101, 10111, 11101, 100101, 101001, 101011, 101111, 110101, 111101]
DEC: [11, 13, 23, 29, 37, 41, 43, 47, 53, 61] 


B = 3, N = 5

BASE3: [12, 21, 102, 201, 1011]
DEC:   [5, 7, 11, 19, 31]


B = 12, N = 7

BASE12: [15, 51, 57, 5B, 75, B5, 107]
DEC: [17, 61, 67, 71, 89, 137, 151]


B = 16, N = 4

HEX: [17, 1F, 35, 3B]
DEC: [23, 31, 53, 59] 

Repl.it- তে আমার (অচলিত) পাইথনের উদাহরণের বিরুদ্ধে আপনি আপনার প্রোগ্রামটি আরও পরীক্ষা করতে পারেন

উত্তর:


6

জেলি , 16 বাইট

bµU,ḅ⁹QÆPḄ=3
⁸ç#

TryItOnline!

কিভাবে?

bµU,ḅ⁹QÆPḄ=3 - Link 1, in-sequence test: n, b
b            - convert n to base b - a list
 µ           - monadic chain separation
  U          - reverse the list
   ,         - pair with the list
     ⁹       - link's right argument, b
    ḅ        - convert each of the two lists from base b
      Q      - get unique values (if palindromic a list of only one item)
       ÆP    - test if prime(s) - 1 if prime, 0 if not
         Ḅ   - convert to binary
          =3 - equal to 3? (i.e. [reverse is prime, forward is prime]=[1,1])

⁸ç# - Main link: b, N
  # - count up from b *see note, and find the first N matches (n=b, n=b+1, ...) for:
 ç  - last link (1) as a dyad with left argument n and right argument
⁸   - left argument, b

* bবেসে নোটটি bহ'ল [1,0], যা যখন বিপরীত হয় [0,1]যা কোনটি হয় 1যা প্রধান নয়; এর চেয়ে কম কিছু bবেসের এক অঙ্ক bএবং তাই প্যালিনড্রোমিক।


জিতে অভিনন্দন!
ফ্লিপট্যাক

8

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

ব্যবহার সিপি-1252 এনকোডিং।

ইনপুট অর্ডারটি n, b
আউটপুট বেস -10 এ রয়েছে।

µN²BÂD²öpŠÊNpPD–½

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

ব্যাখ্যা

                    # implicit input a,b
µ                   # loop until counter is a
 N²B                # convert current iteration number to base b
    ÂD              # create 2 reversed copies
      ²ö            # convert one reversed copy to base 10
        p           # check for primality
         ŠÊ         # compare the normal and reversed number in base b for inequality
           Np       # check current iteration number for primality
             P      # product of all
              D     # duplicate
               –    # if 1, print current iteration number
                ½   # if 1, increase counter

4

গণিত, 70 বাইট

Cases[Prime@Range@437,p_/;(r=p~IntegerReverse~#2)!=p&&PrimeQ@r]~Take~#&

0 <= n <= 100এবং জন্য কাজ করে 2 <= b <= 16। তালিকা থেকে Prime@Range@437প্রথম 437মৌলিক, খুঁজুন Cases pযেখানে IntegerReverse rএর pবেস মধ্যে #2সমান নয় pএবং মৌলিক হয়, তাহলে প্রথম নিতে #যেমন p

এখানে একটি 95 বাইট সমাধান যা স্বেচ্ছাসেবী জন্য কাজ করে n>=0এবং b>=2:

(For[i=1;a={},Length@a<#,If[(r=IntegerReverse[p=Prime@i,#2])!=p&&PrimeQ@r,a~AppendTo~p],i++];a)&

+1 টি IntegerReverse। অবশ্যই! খুশী হলাম।
ডেভিডসি

স্বেচ্ছাসেবক-এনবি সমাধানের জন্য 79 বাইট ; পাদলেখের মধ্যে যদি আইএনজি অনুমোদিত হয় তবে 77 বাইটReap :For[i=j=0,j<#,If[(r=IntegerReverse[p=Prime@++i,#2])!=p&&PrimeQ@r,j++;Sow@p]]&
রোমান

3

পার্ল, 262 বাইট

($b,$n)=@ARGV;$,=',';sub c{my$z;for($_=pop;$_;$z=(0..9,a..z)[$_%$b].$z,$_=($_-$_%$b)/$b){};$z}sub d{my$z;for(;c(++$z)ne@_[0];){}$z}for($p=2;@a<$n;$p++){$r=qr/^1?$|^(11+?)\1+$/;(c($p)eq reverse c$p)||((1x$p)=~$r)||(1x d($x=reverse c($p)))=~$r?1:push@a,c($p);}say@a

রিডেবল:

($b,$n)=@ARGV;
$,=',';
sub c{
    my$z;
    for($_=pop;$_;$z=(0..9,a..z)[$_%$b].$z,$_=($_-$_%$b)/$b){};
    $z
}
sub d{
    my$z;
    for(;c(++$z)ne@_[0];){}
    $z
}
for($p=2;@a<$n;$p++){
    $r=qr/^1?$|^(11+?)\1+$/;
    (c($p)eq reverse c$p)||((1x$p)=~$r)||(1x d($x=reverse c($p)))=~$r?1:push@a,c($p)
}
say@a

cপ্রদত্ত সংখ্যাটিকে বেসে রূপান্তর করে $bএবং dপ্রদত্ত সংখ্যাটিকে বেস থেকে $bদশমিক হিসাবে রূপান্তর করে প্রথম সংখ্যাটি খুঁজে বের করে যা $bপাস করার সময় বেস- নম্বর বলে দেয় c। লুপের জন্য এটি পরীক্ষা করে যদি এটি একটি প্যালিনড্রোম হয় এবং যদি উভয় সংখ্যার সমন্বিত রেজেক্স ব্যবহার করে মৌলিক হয়।


3

গণিত 112 বাইট

Cases[Table[Prime@n~IntegerDigits~#2,{n,500}],x_/;x!=(z=Reverse@x)&&PrimeQ[z~(f=FromDigits)~#2]:>x~f~#2]~Take~#&

উদাহরণ

হেক্সে প্রথম 10 এমপগুলি সন্ধান করুন; দশমিক তাদের ফিরিয়ে দিন।

Cases[Table[Prime@n~IntegerDigits~#2, {n, 500}], 
x_ /; x != (z = Reverse@x) && PrimeQ[z~(f = FromDigits)~#2] :> x~f~#2]~Take~# &[10, 16]


{23, 31, 53, 59, 61, 83, 89, 113, 149, 179}

Ungolfed

Take[Cases[                                             (* take #1 cases; #1 is the first input argument *)
   Table[IntegerDigits[Prime[n], #2], {n, 500}],        (* from a list of the first 500 primes, each displayed as a list of digits in base #2 [second argument] *) 
   x_ /;                                                (* x, a list of digits, such that *)
   x != (z = Reverse[x]) && PrimeQ[FromDigits[z, #2]]   (* the reverse of the digits is not the same as the list of digits; and the reverse list, when composed, also constitutes a prime *)
   :> FromDigits[x, #2]],                               (* and return the prime *)
   #1] &                                                (* [this is where #1 goes, stating how many cases to Take] *)


2

পাইথন 3 , 232 214 191 188 বাইট

p=lambda n:all(n%i for i in range(2,n))
def f(b,n):
 s=lambda n:(''if n<b else s(n//b))+f'{n%b:X}';l=[];i=3
 while n:i+=1;c=s(i);d=c[::-1];a=(c!=d)*p(i)*p(int(d,b));l+=[c]*a;n-=a
 return l

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



আমার স্নাতকের! এটি 191 বাইটে
আনে

ভাল লাগছে, @ জোকিং!
মোভাটিকা

2

সি, 293 286 261 বাইট

দ্বারা উন্নত @ সেলিংক্যাট , 261 বাইট :

v,t,i,j,c,g,s[9],r[9],b;main(n,a)int**a;{for(b=n=atoi(a[1]);g^atoi(a[2]);t|v|!wcscmp(s,r)||printf("%u ",n,++g)){i=j=0;for(c=++n;s[i]=c;c/=b)s[i++]=c%b+1;for(;r[j]=i;)r[j++]=s[--i];p(n);for(t=v;r[i];)c+=~-r[i]*pow(b,i++);p(c);}}p(n){for(j=1,v=0;++j<n;n%j||v++);}

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

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


@ মোভ্যাটিকা , 286 বাইট দ্বারা উন্নত :

u,v,t,i,j,c,n,g;main(int x,char**a){char s[9],r[9],b=n=atoi(a[1]);x=atoi(a[2]);for(;g^x;){i=j=0;for(c=++n;c;c/=b)s[i++]=c%b+1;s[i]=c=0;for(;i;r[j++]=s[--i]);r[j]=0;p(n);t=v;for(;r[i];)c+=(r[i]-1)*pow(b,i++);p(c);t|v|!strcmp(s,r)?:printf("%u ",n,++g);}}p(n){for(u=1,v=0;++u<n;n%u?:v++);}

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


আমার আসল উত্তর, 293 বাইট:

u,v,t,i,j,c,n,g;main(int x,char**a){char s[9],r[9],b=n=atoi(a[1]);x=atoi(a[2]);for(++n;g^x;++n){i=j=0;for(c=n;c;c/=b)s[i++]=c%b+1;s[i]=c=0;for(;i;r[j++]=s[--i]);r[j]=0;p(n);t=v;for(--i;r[++i];)c+=(r[i]-1)*pow(b,i);p(c);t|v|!strcmp(s,r)?:printf("%u ",n,++g);}}p(n){for(u=1,v=0;++u<n;n%u?:v++);}

সংকলন gcc emirp.c -o emirp -lmএবং সাথে চালানো ./emirp <b> <n>। বেস -10 এ স্থান-বিচ্ছিন্ন ইমিরপসগুলি মুদ্রণ করে।


@ ফ্লিপট্যাক আপনি ঠিক বলেছেন আমি আগামীকাল এটি ঠিক করতে হবে।
ওভারক্লোকড সানিক

@ ফ্লিপট্যাক আপনার পরীক্ষাগুলি পাস করে তা নিশ্চিত করার জন্য এটি স্থির এবং পরীক্ষিত। এটা কি ভালো?
ওভারক্লকড সানিক

সত্যই! এবং কোড গল্ফ স্বাগতম।
ফ্লিপট্যাক

1
চমৎকার কাজ! আপনাকে কিছু বর্ধিত অপারেটর সরানো হয়েছে আপনাকে নামিয়ে 286
মোভ্যাটিকা

1
@ মোভ্যাটিকা দুর্দান্ত! আমি আমার উত্তরে আপনার উন্নতিগুলি যুক্ত করেছি। ধন্যবাদ!
ওভারক্লকডসানিক

1

জাভাস্ক্রিপ্ট (ES6), 149 148 141 140 বাইট

বেস বেসে এমির্পসের একটি স্থান-বিভাজিত তালিকা ফেরত দেয়। (পরিবর্তে দশমিক তালিকার মাধ্যমে 2 বাইট সংক্ষিপ্ত হতে পারে))

f=(b,n,i=2)=>n?((p=(n,k=n)=>--k<2?k:n%k&&p(n,k))(i)&p(k=parseInt([...j=i.toString(b)].reverse().join``,b))&&k-i&&n--?j+' ':'')+f(b,n,i+1):''

পরীক্ষার মামলা



0

এপিএল (এনএআরএস), 87 টি চর, 174 বাইট

r←a f w;i
i←1⋄r←⍬
→2×⍳∼{∼0π⍵:0⋄k≡v←⌽k←{(a⍴⍨⌊1+a⍟⍵)⊤⍵}⍵:0⋄0πa⊥v:1⋄0}i+←1⋄r←r,i⋄→2×⍳w>≢r

ফলাফল 10 বেসে হবে। পরীক্ষা এবং ফলাফল:

  3 f 1
5 
  2 f 10
11 13 23 29 37 41 43 47 53 61 
  3 f 5
5 7 11 19 31 
  12 f 7
17 61 67 71 89 137 151 
  16 f 4
23 31 53 59 

{(⍺⍴⍨⌊1+⍺⍟⍵)⊤⍵}বেস , অ্যারের পূর্ণসংখ্যার ফলাফলের রূপান্তর করবে ; 0π⍵সত্য [1] ফিরে আসবে অন্যথায় যদি এটি হয় তবে এটি 0 হবে return

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