দশমিক উপস্থাপনায় প্রতিটি বহু-অঙ্কের স্তরগুলিও মুখ্য যেখানে সমস্ত ধনাত্মক সংখ্যা মুদ্রণ / আউটপুট দেয়।


15

কার্য

আপনার কাজ হ'ল সমস্ত ধনাত্মক সংখ্যা মুদ্রণ বা আউটপুট করা যেখানে প্রতিটি দশমিক প্রতিনিধিত্বের প্রতিটি বহু-অঙ্কের স্তরটিও প্রধান। যদি সংখ্যাটিতে কমপক্ষে 2 ডিজিট থাকে, তবে এটি বোঝাবে যে সংখ্যাটি নিজেই মূল হওয়া উচিত।

উদাহরণ

  • 6197ক্রমানুসারে কারণ যে বহু অঙ্ক মধ্যে সাবস্ট্রিং 6197প্রধানমন্ত্রী, যথা হল: 61, 19, 97, 619, 197, 6197(নিজেই)।
  • দ্রষ্টব্য যে 6এটি একটি প্রধান নয় তবে 6197এটি এখনও ক্রমতে রয়েছে কারণ 6এটি একটি বহু-অঙ্কের সাবস্ট্রিং নয় 6197
  • 8ক্রমটিতেও রয়েছে কারণ প্রতিটি বহু-সংখ্যার স্ট্রস্ট্রিং 8প্রধান। এখানে কোনও বহু-অঙ্কের স্ট্রাস্টিং নেই 8, সুতরাং এটি ফাঁকা সত্যের একটি ঘটনা ।

চশমা

  • স্ট্যান্ডার্ড লুফোলগুলি প্রয়োগ হয়, আপনি আপনার প্রোগ্রামের আউটপুট সম্পর্কিত আউটপুট হার্ডকোড বা স্টোর সম্পর্কিত তথ্য সংরক্ষণের অনুমতিপ্রাপ্ত হন।
  • আউটপুট নম্বরগুলি যে কোনও ক্রমে হতে পারে ।
  • আউটপুটে নম্বর হয় অনুমতি সদৃশ আছে।
  • আপনি যদি কোনও আউটপুট পরিবর্তে মুদ্রণ করতে চান তবে যে কোনও বিভাজক ব্যবহার করতে পারেন ।
  • আপনি যদি আউটপুট পরিবর্তে মুদ্রণ করতে চান তবে আপনাকে উপসর্গ এবং / অথবা পোস্টফিক্স আউটপুট দেওয়ার অনুমতি দেওয়া হবে।
  • বিভাজক এবং উপসর্গ এবং পোস্টফিক্সে কোনও অঙ্ক (U + 0030 থেকে U + 0039) না থাকতে পারে।

সম্পূর্ণ তালিকা (58 আইটেম)

1
2
3
4
5
6
7
8
9
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
113
131
137
173
179
197
311
313
317
373
379
419
431
479
613
617
619
673
719
797
971
1373
3137
3797
6131
6173
6197
9719

উল্লেখ

  • OEIS A131648 (অসম্পূর্ণ তালিকা)

বরাবরের মতো, দয়া করে মন্তব্যগুলিতে আমার স্পষ্ট করা উচিত যে কোনও কিছুতে বিনা দ্বিধায় যোগাযোগ করুন।


2
আমি কে এই চ্যালেঞ্জ ক্ষুদ্রতম উত্তর জমা @Fatalize ব্যতীত অন্য কাউকে +300 খয়রাত দেবে Brachylog ( উইকি লিংক ) ( Tio লিংক ) ( চ্যাটরুম )।
লিকি নুন

2
দরিদ্র @ ফ্যাটালাইজ কোনও ভাষা তৈরির জন্য এটিই আপনি পান
লুইস মেন্ডো

3
আমার কাছে 50 টি বাইটের উত্তর রয়েছে :(
ফ্যাটালাইজ করুন

1
প্রোগ্রামটি শেষ করতে হবে?
pm এ জালিয়াতি করুন

2
@ লেকিউন দেখে মনে হচ্ছে কেউ যেন এই অনুগ্রহ পেতে চলেছে!
জর্ডান

উত্তর:



7

05 এ বি 1 ই , 15 13 বাইট

কোড:

4°GN§ŒD9›ÏpP–

ব্যাখ্যা:

  G            # For N in range 1,
4°             #   10000
   N           # Push N
    §          # Convert that to string
     Œ         # Get all substrings
      D9›Ï     # Keep all substrings that are greater than 9
          p    # Check each of them if they are prime
           P   # Product
            –  # If 1, print N

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


5

ব্র্যাচল্যাগ , 18 17 15 16 15 বাইট

ℕ₁<l4&≜sᶠ{Ḋ|ṗ}ᵐ

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

-১ বাইট ফ্যাটালাইজের সাথে আলোচনার পরে আমাকে অনুপ্রাণিত করেছিল যে আমি কী করব lএবং তার <চারপাশে অদলবদল করলে কী হয় ।

এই শিকারী ইনপুট ভেরিয়েবলের মাধ্যমে আউটপুট উত্পন্ন করে, যতক্ষণ আউটপুট ভেরিয়েবলটি নিয়ন্ত্রণহীন রেখে যায়। যেহেতু সদৃশগুলি অনুমোদিত, প্রতিটি সংখ্যা তার সংখ্যার সংখ্যার শক্তির সমান গুণ 2 দিয়ে উত্পন্ন হয় যা মূল সংখ্যা।

ℕ₁                 The input variable is a natural number
  <                less than
   l4              some number with length 4 (maximized as 9999).
     &≜            Assign a number to the input, and assert that
       sᶠ          every substring of it
         { | }ᵐ    is either
            ṗ      a prime number
          Ḋ        or a single digit.

পুরানো সংস্করণ:

{≜ℕsᶠ{Ḋ!|ṗ}ᵐ&}ᶠ⁵⁹b
7^₅⟦₁{sᶠ{Ḋ|ṗ}ᵐ&}ˢ
8ḟ⟦₁{sᶠ{Ḋ|ṗ}ᵐ&}ˢ
∧8ḟ>?ℕ₁≜sᶠ{Ḋ|ṗ}ᵐ

এটি 16 বাইট, তবে অনির্ধারিত, কারণ 40320 অবধি সমস্ত কিছু পরীক্ষা করা ঠিক দ্রুত নয়:8ḟ⟦₁{sᶠ{Ḋ|ṗ}ᵐ&}ˢ
সম্পর্কিত নয় স্ট্রিং

এটি পরিবর্তে 10000 এর উপরের সীমানা দিয়ে জরিমানার অবসান ঘটায়, যদিও: tio.run/##SypKTM6ozMlPN/r/39AACB7NX/…
স্ট্রিং

4

ব্র্যাচল্যাগ , 18 বাইট

আরেকটি ব্র্যাচল্যাগ সমাধান। আমি এরিক দি আউটগল্ফারের ব্র্যাচল্যাগ সমাধানের চেয়ে কম এটিকে পেতে পারি না ; এটি হুবহু একই দৈর্ঘ্য, তবে বিপরীত দিক থেকে প্রজন্মের কাছে।

{≜ℕ{sℕ₁₀}ᶠṗᵐ&}ᶠ⁵⁹b

দেখে মনে হচ্ছে অবিরত স্ট্রিং অনেকগুলি চরিত্রের দ্বারা এটিকে পরাজিত করেছে, যার অভিনন্দন জানাই।

ব্যাখ্যা:

{≜ℕ                Brute force all nonnegative integers to find any that match the constraints
   {s               Create a predicate that finds all subsequences of digits of said integer
     ℕ₁₀            Constrains those subsequences to be >= 10
        }ᶠ          Finds all possible values of that predicate: all multi-digit subsequences
          ṗᵐ        Apply a primality constraint to all of those subsequences
            &       Make the predicate output the input integer rather than a prime subsequence
             }ᶠ⁵⁹   Find the first 59 results (all of the puzzle's solutions, and zero)
                 b  Remove the first element of the list, i.e. 0

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


3

জেলি , 17 বাইট

DẆṖÐfḌÆP€Ạ
³²RÇÐf

আমার প্রথম জেলি উত্তর! সংরক্ষিত 3 বাইট @ লিকি নুনকে ধন্যবাদ !

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

ব্যাখ্যা:

DẆṖÐfḌÆP€Ạ      The helper link, which checks if a given number satisfy the conditions.
DẆ              Convert the argument to a list of its digits and get all its substrings.
  ṖÐf           Remove all lists of length 1.
     ḌÆP€Ạ      Convert back each element to an integer and check if all of them are prime.

³²RÇÐf          Main link.
³²              Create a 100 and square it, which gives 10000.
  R             Create a list from 1 to it.
   ÇÐf          Filter out all the elements where the helper link gives false.

আপনার প্রথম জেলি উত্তর অভিনন্দন!
লিকি নুন

2
RÇÐfসঙ্গে প্রতিস্থাপন করা যেতে পারে Ç€TṖÐfḌÆP€সঙ্গে প্রতিস্থাপন করা যেতে পারে ḌḟDÆP
ডেনিস

3

জাভা 8, 182 বাইট

v->{for(int n=0;++n<1e4;)if(P(n)>0)System.out.println(n);}int p(int n){for(int i=2;i<n;n=n%i++<1?0:n);return n;}int P(int n){return n>99?p(n)*p(n%100)*p(n%1000)*P(n/10):n<10?n:p(n);}

গ্যাস্ট্রপনারের সি ( জিসিসি ) উত্তর বন্দর , সুতরাং তার উত্তরটি উঁচুতে নিশ্চিত করুন!

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

ব্যাখ্যা:

// Loop in range [1,10000), and print any primes corresponding to the challenge description
v->{for(int n=0;++n<1e4;)if(P(n)>0)System.out.println(n);}

// Checks if the given integer is a prime (return unchanged input if prime, 0 if not)
int p(int n){for(int i=2;i<n;n=n%i++<1?0:n);return n;}

// Recursive method that checks if every part of length 2+ is a prime, or is below 10
int P(int n){return n>99?p(n)*p(n%100)*p(n%1000)*P(n/10):n<10?n:p(n);}

2

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

1..10+(11..1e4|?{($x=11..($i=$_)|?{"$i"-match$_}).count-eq($x|?{'1'*$_-match'^(?!(..+)\1+$)..'}).count})

সতর্কতা: কিন্ডা ধীর

থেকে loops 11জন্য 1e4(অর্থাত, 10000) এবং আউট ব্যবহার সংখ্যার টানাপড়েনে Where-Objectনির্বাচক ( |?{...})। ধারাটি দুটি উপাদান - প্রথমটি 11বর্তমান সংখ্যার উপর থেকে লুপ করে এবং Where-Objectসেই সংখ্যাগুলিকে টেনে আনতে ব্যবহার করে যা বর্তমান সংখ্যার একটি স্তর তৈরি করে ( -matchরেজেক্স অপারেটরের মাধ্যমে )। আমরা সেই সাবস্ট্রিংগুলিতে সংরক্ষণ করি $x। দ্বিতীয় অংশের মাধ্যমে loops $xএবং ব্যবহার Where-Objectব্যবহার করে সকল মৌলিক উঠিয়ে ফেলা প্রধানমন্ত্রী Regex । তারপরে আমরা .countউভয়টিই -eqনিই এবং চেকটি আসলে এটি ইউয়াল কিনা তা । উদাহরণ স্বরূপ,971 থাকবে $x = (71,97,971)এবং যারা প্রতিটি মৌলিক হয়, তাই 3-eq3হল $TRUEএবং এইভাবে 971নির্বাচিত করা হবে।

ফলাফলটি একটি ব্যাপ্তির সাথে অ্যারে-কনটেনটেটেড 1..10। ফলস্বরূপ অ্যারেটি পাইপলাইনে রেখে যায় এবং আউটপুট অন্তর্ভুক্ত থাকে, ডিফল্টরূপে উপাদানগুলির মধ্যে একটি নতুন লাইন থাকে।



2

সি (জিসিসি) , 144 142 140 136 134 132 বাইট

-2 কেভিন ক্রুইজসেনকে ধন্যবাদ। -2 সিলিংক্যাট ধন্যবাদ

... এবং এতে অনুপ্রাণিত হয়ে আমরা লুপের জন্য আরও 2 বাইট পেতে পারি।

আরও নির্লজ্জভাবে কেভিন ক্রুইজসেনের উত্তর -4 এর চেয়ে আরও ভাল প্রাইম চেকারকে উপহাস করলেন ।

p(n,i){for(i=2;i<n;)n*=n%i++||n<10;i=n;}P(n){n=p(n)*(n<99||p(n%100)*p(n%1000)*P(n/10));}f(n){for(n=1e4;--n;)P(n)&&printf("%d\n",n);}

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


||n<10-২ বাইটের জন্য হতে পারে |n<10এবং for(n=1;n<1e4;n++)হতে পারে for(n=0;++n<1e4;)
কেভিন ক্রুজসসেন

@ কেভিন ক্রুজসেন চিয়ার্স!
গ্যাস্ট্রোপনার

2

ম্যালবোলজ আনশ্যাকলড (20-ট্রিট রোটেশন ভেরিয়েন্ট), 2,5254e7 বাইট বা 1,9809e7 বাইট

এই উত্তরের আকারটি সর্বোচ্চ পোস্টযোগ্য প্রোগ্রামের আকার (এএইচ) ছাড়িয়ে গেছে, সুতরাং কোডটি আমার গিটহাবের সংগ্রহস্থলে অবস্থিত (দ্রষ্টব্য: সিটিআরএল + এ এবং সিটিআরএল + সি ব্যবহার করে কোডটি অনুলিপি করবেন না, কেবল ডান ক্লিক করুন এবং "গন্তব্য উপাদান হিসাবে সংরক্ষণ করুন" এ ক্লিক করুন। .. ")।

এটি কিভাবে চালানো যায়?

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

আমি যেটি খুঁজে পেতে পারি তা হ'ল স্থির 20-ট্রিট রোটেশন প্রস্থের বৈকল্পিক, এটি খুব ভাল সম্পাদন করে।

দোভাষীটিকে কিছুটা দ্রুত করার জন্য, আমি ম্যাথিয়াস লুটারের মালবোলজ আনশ্যাকল্ড দোভাষী থেকে সমস্ত চেক সরিয়েছি।

#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

const char* translation = "5z]&gqtyfr$(we4{WP)H-Zn,[%\\3dL+Q;>U!pJS72Fh"
        "OA1CB6v^=I_0/8|jsb9m<.TVac`uY*MK'X~xDl}REokN:#?G\"i@";

typedef struct Word {
    unsigned int area;
    unsigned int high;
    unsigned int low;
} Word;

void word2string(Word w, char* s, int min_length) {
    if (!s) return;
    if (min_length < 1) min_length = 1;
    if (min_length > 20) min_length = 20;
    s[0] = (w.area%3) + '0';
    s[1] = 't';
    char tmp[20];
    int i;
    for (i=0;i<10;i++) {
        tmp[19-i] = (w.low % 3) + '0';
        w.low /= 3;
    }
    for (i=0;i<10;i++) {
        tmp[9-i] = (w.high % 3) + '0';
        w.high /= 3;
    }
    i = 0;
    while (tmp[i] == s[0] && i < 20 - min_length) i++;
    int j = 2;
    while (i < 20) {
        s[j] = tmp[i];
        i++;
        j++;
    }
    s[j] = 0;
}

unsigned int crazy_low(unsigned int a, unsigned int d){
    unsigned int crz[] = {1,0,0,1,0,2,2,2,1};
    int position = 0;
    unsigned int output = 0;
    while (position < 10){
        unsigned int i = a%3;
        unsigned int j = d%3;
        unsigned int out = crz[i+3*j];
        unsigned int multiple = 1;
        int k;
        for (k=0;k<position;k++)
            multiple *= 3;
        output += multiple*out;
        a /= 3;
        d /= 3;
        position++;
    }
    return output;
}

Word zero() {
    Word result = {0, 0, 0};
    return result;
}

Word increment(Word d) {
    d.low++;
    if (d.low >= 59049) {
        d.low = 0;
        d.high++;
        if (d.high >= 59049) {
            fprintf(stderr,"error: overflow\n");
            exit(1);
        }
    }
    return d;
}

Word decrement(Word d) {
    if (d.low == 0) {
        d.low = 59048;
        d.high--;
    }else{
        d.low--;
    }
    return d;
}

Word crazy(Word a, Word d){
    Word output;
    unsigned int crz[] = {1,0,0,1,0,2,2,2,1};
    output.area = crz[a.area+3*d.area];
    output.high = crazy_low(a.high, d.high);
    output.low = crazy_low(a.low, d.low);
    return output;
}

Word rotate_r(Word d){
    unsigned int carry_h = d.high%3;
    unsigned int carry_l = d.low%3;
    d.high = 19683 * carry_l + d.high / 3;
    d.low = 19683 * carry_h + d.low / 3;
    return d;
}

// last_initialized: if set, use to fill newly generated memory with preinitial values...
Word* ptr_to(Word** mem[], Word d, unsigned int last_initialized) {
    if ((mem[d.area])[d.high]) {
        return &(((mem[d.area])[d.high])[d.low]);
    }
    (mem[d.area])[d.high] = (Word*)malloc(59049 * sizeof(Word));
    if (!(mem[d.area])[d.high]) {
        fprintf(stderr,"error: out of memory.\n");
        exit(1);
    }
    if (last_initialized) {
        Word repitition[6];
        repitition[(last_initialized-1) % 6] =
                ((mem[0])[(last_initialized-1) / 59049])
                    [(last_initialized-1) % 59049];
        repitition[(last_initialized) % 6] =
                ((mem[0])[last_initialized / 59049])
                    [last_initialized % 59049];
        unsigned int i;
        for (i=0;i<6;i++) {
            repitition[(last_initialized+1+i) % 6] =
                    crazy(repitition[(last_initialized+i) % 6],
                        repitition[(last_initialized-1+i) % 6]);
        }
        unsigned int offset = (59049*d.high) % 6;
        i = 0;
        while (1){
            ((mem[d.area])[d.high])[i] = repitition[(i+offset)%6];
            if (i == 59048) {
                break;
            }
            i++;
        }
    }
    return &(((mem[d.area])[d.high])[d.low]);
}

unsigned int get_instruction(Word** mem[], Word c,
        unsigned int last_initialized,
        int ignore_invalid) {
    Word* instr = ptr_to(mem, c, last_initialized);
    unsigned int instruction = instr->low;
    instruction = (instruction+c.low + 59049 * c.high
            + (c.area==1?52:(c.area==2?10:0)))%94;
    return instruction;
}

int main(int argc, char* argv[]) {
    Word** memory[3];
    int i,j;
    for (i=0; i<3; i++) {
        memory[i] = (Word**)malloc(59049 * sizeof(Word*));
        if (!memory) {
            fprintf(stderr,"not enough memory.\n");
            return 1;
        }
        for (j=0; j<59049; j++) {
            (memory[i])[j] = 0;
        }
    }
    Word a, c, d;
    unsigned int result;
    FILE* file;
    if (argc < 2) {
        // read program code from STDIN
        file = stdin;
    }else{
        file = fopen(argv[1],"rb");
    }
    if (file == NULL) {
        fprintf(stderr, "File not found: %s\n",argv[1]);
        return 1;
    }
    a = zero();
    c = zero();
    d = zero();
    result = 0;
    while (!feof(file)){
        unsigned int instr;
        Word* cell = ptr_to(memory, d, 0);
        (*cell) = zero();
        result = fread(&cell->low,1,1,file);
        if (result > 1)
            return 1;
        if (result == 0 || cell->low == 0x1a || cell->low == 0x04)
            break;
        instr = (cell->low + d.low + 59049*d.high)%94;
        if (cell->low == ' ' || cell->low == '\t' || cell->low == '\r'
                || cell->low == '\n');
        else if (cell->low >= 33 && cell->low < 127 &&
                (instr == 4 || instr == 5 || instr == 23 || instr == 39
                    || instr == 40 || instr == 62 || instr == 68
                    || instr == 81)) {
            d = increment(d);
        }
    }
    if (file != stdin) {
        fclose(file);
    }
    unsigned int last_initialized = 0;
    while (1){
        *ptr_to(memory, d, 0) = crazy(*ptr_to(memory, decrement(d), 0),
                *ptr_to(memory, decrement(decrement(d)), 0));
        last_initialized = d.low + 59049*d.high;
        if (d.low == 59048) {
            break;
        }
        d = increment(d);
    }
    d = zero();

    unsigned int step = 0;
    while (1) {
        unsigned int instruction = get_instruction(memory, c,
                last_initialized, 0);
        step++;
        switch (instruction){
            case 4:
                c = *ptr_to(memory,d,last_initialized);
                break;
            case 5:
                if (!a.area) {
                    printf("%c",(char)(a.low + 59049*a.high));
                }else if (a.area == 2 && a.low == 59047
                        && a.high == 59048) {
                    printf("\n");
                }
                break;
            case 23:
                a = zero();
                a.low = getchar();
                if (a.low == EOF) {
                    a.low = 59048;
                    a.high = 59048;
                    a.area = 2;
                }else if (a.low == '\n'){
                    a.low = 59047;
                    a.high = 59048;
                    a.area = 2;
                }
                break;
            case 39:
                a = (*ptr_to(memory,d,last_initialized)
                        = rotate_r(*ptr_to(memory,d,last_initialized)));
                break;
            case 40:
                d = *ptr_to(memory,d,last_initialized);
                break;
            case 62:
                a = (*ptr_to(memory,d,last_initialized)
                        = crazy(a, *ptr_to(memory,d,last_initialized)));
                break;
            case 81:
                return 0;
            case 68:
            default:
                break;
        }

        Word* mem_c = ptr_to(memory, c, last_initialized);
        mem_c->low = translation[mem_c->low - 33];

        c = increment(c);
        d = increment(d);
    }
    return 0;
}

পারফরম্যান্স নোট

অ্যাপ্লিকেশনটি আমার মেশিনে প্রায় 40 মিনিট চলেছিল, ক্রমটির এইচএক্স নম্বরগুলি তৈরি করে। আমি এটি গণনার এক ঘন্টার কাছাকাছি থামিয়ে দিয়েছিলাম এবং এটি 0x11 এ শেষ হয়েছে।

নোট করুন এই উত্তরটি আমার অন্য একটির থেকে পৃথক হয়েছে, কারণ এইটি আসলে সংখ্যাগুলি গণনা করে এবং এটি তৈরি করা যায় তাই এটি অনির্দিষ্টকালের জন্য তাদের গণনা করে।

অ্যাপ্লিকেশনটি স্পিনআপ বাফার বরাদ্দ করে, এটি প্রায় 7 গিগাবাইট বড়, তাই আপনার নিখরচায় র‍্যাম প্রস্তুত করুন।

বিকল্প বৈকল্পিক

বিকল্প বৈকল্পিক প্রায় 2 গিগাবাইট মেমরি কম ব্যবহার করে তবে ASCII অক্ষর (0 = ASCII (0x0), 10 = নিউলাইন, ইত্যাদি ...) আকারে আউটপুট উত্পাদন করে এবং এখানে উপলব্ধ । চ্যালেঞ্জ প্রয়োজনীয়তার কারণে এটি প্রতিযোগিতা করে না


কোড গল্ফ সংক্ষিপ্ত উত্তর দেওয়ার বিষয়ে।
Alfe

2
@ আলফা ম্যালবলেজ এমন একটি ভাষা যা ডিজাইন করা হয়েছিল (উইকিপিডিয়া লিঙ্ক) তে প্রোগ্রাম করা অত্যন্ত কঠিন ; এটি যে এমনকি সম্ভব তা সত্যই চিত্তাকর্ষক।
জিউসেপ

4
সুতরাং, আসলে, এই হয় একটি সংক্ষিপ্ত উত্তর। শুধু মানগুলি স্থানান্তরিত হয়। সামান্য।
Alfe

3
@ কিছুটা বাইট বন্ধ করে দেওয়ার চেষ্টা করতে আপনাকে স্বাগতম! ;-)
জিউসেপ

2

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

r=range(9720)
for n in r[1:]:all(all(l%k+9//l for k in r[2:l])for l in(n%10**(i%5)//10**(i//5)for i in r))and print(n)

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

ব্যাখ্যা

সতর্কতা: এই সমাধানে কোনও প্রকৃত স্ট্রিং জড়িত নেই।

r=range(9720)
for n in r[1:]:                                        # For each positive integer up to 9720
 all( ... for l in(n%10**(i%5)//10**(i//5)for i in r)) # Check for all its substrings
  all(l%k ... for k in r[2:l])                         # If it is either prime
   +9//l                                               # Or smaller than 10
and print(n)                                           # Then print


1

পার্ল 6 ,  47 44  43 বাইট

for 1..9719 {all(m:ex/..+/).Int.is-prime&&.say}
put grep {is-prime +all(m:ex/..+/):},1..9719
put grep {is-prime +all m:ex/..+/:},1..9719

ব্যাখ্যা:

# print the values space separated, with trailing newline
put

# that match
grep -> $_ {

  # call the method 「.is-prime」 ( that is what 「:」 is for )
  # (autothreaded)
  is-prime

  # convert following to numeric (autothreaded)
  +
  # a junction of
  all(
    # all substrings 2 characters or greater
    $_ ~~ m :exhaustive / . .+ /
  )

  # needed to indicate that 「is-prime」 is a method call
  :

},

# in this Range
1..9719

1

সি #, 261 249 247 বাইট

লিকি নুনকে ধন্যবাদ 12 বাইট সংরক্ষণ করা

()=>{Action<int>w=System.Console.WriteLine;int i=0,n,j,k,p,m,b;for(;++i<10001;){n=(i+"").Length;if(n<2)w(i);else{b=1;for(j=1;++j<=n;)for(k=0;k+j<=n;){p=int.Parse((i+"").Substring(k++,j));if(p%2<1)b=0;for(m=3;m<p;m+=2)if(p%m<1)b=0;}if(b>0)w(i);}}};

এটি একটিতে সংকলন করে Func<List<int>>

বিন্যাসিত সংস্করণটি দেখে মনে হচ্ছে:

() =>
{
    Action<int> w = System.Console.WriteLine;

    int i = 0, n, j, k, p, m, b;

    for (; ++i < 10001;)
    {
        n = (i + "").Length;

        if (n < 2)
            w(i);

        else
        {
            b = 1;
            for (j = 1; ++j <= n; )
                for (k = 0; k + j <= n; )
                {
                    p = int.Parse((i + "").Substring(k++, j));

                    if (p % 2 < 1)
                        b = 0;

                    for (m = 3; m < p; m += 2)
                        if (p % m < 1)
                            b = 0;
                }

            if (b > 0)
                w(i);
        }
    }
};

কেবল একটি তালিকা ব্যবহার না করে সরাসরি এটি মুদ্রণ করুন
লিকি নুন

এর পরিবর্তে falseবা trueব্যবহার করুন 0>1এবং0<1
লিকি নুন

আপনি উল্লেখ করতে পারে এই অতিরিক্ত golfing টিপসের জন্য।
লিকি নুন

@ ল্যাকিয়ুনুন টিপসের জন্য ধন্যবাদ, আমি সাধারণত একটি কিন্ডা গল্ফড সংস্করণ পোস্ট করে সেখান থেকে সরে যেতে চাই।
TheLethalCoder

1

সুইফট 4 , 144 বাইট

let p={n in !(2..<n).contains{n%$0<1}}
print((1...971).filter{$0<10||p($0)&&($0<100||p($0/10)&&p($0%100))}+[1373,3137,3797,6131,6173,6197,9719])

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

ব্যাখ্যা

let p={n in !(2..<n).contains{n%$0<1}} // Helper function p, tests if a number is prime
print((1...971).filter{                // Print every number n in the range 1 to 971
 $0<10                                 //  that is less than 10
 ||p($0)&&                             //  or a prime and
 ($0<100                               //   is less than 100 or
  ||p($0/10)&&p($0%100))}              //   n/10 and n%100 are primes
+[1373,3137,3797,6131,6173,6197,9719]) // Print the four digit numbers

1

জাভাস্ক্রিপ্ট (নোড.জেএস) , 130 বাইট

যদি আমি অসীম স্ট্যাক অনুমান করতে পারেন i*i<=n&&মুছে ফেলা হতে পারে এবং i*i>nসক্রিয় i>=n9 বাইট কোড হ্রাস এবং হয়ত recursive করার প্রধান ফাংশন রূপান্তর: https://tio.run/##LYpBDoIwEEX33AMyAxVbXUmccgX2xkWDRYeQaSPqyrvXkrj5ef/lze7j1vHJ8bWTcPMpTQRMWjm6XJFs0/DZ@EM/ASunBmCsKtfG9/rIiJ0rIoEoJpNbKXPdx@1jx5akGEiytqdNYp2nNFr / ডাব্লুআর @ xHkD2Rn81dpLGIGtYfLuEO0yAmH4 (১১৯ বাইট)

_=>eval(`for(a=[i=1];++i<1e4;)P(i)&&a.push(i)`)||a
p=(n,i=1)=>i*i<=n&&n%++i?p(n,i):n%i
P=n=>n>9?p(n)*p(n%100)*p(n%1e3)*P(n/10|0):n

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


1

মালবোলজ , 1361 বাইট

সহজ এবং বিরক্তিকর সংস্করণ। সর্বোচ্চ থেকে সংখ্যা প্রদর্শন করে।

D'`r^"!=[YG3yUCvA-csNqp-nJ$HYFgDC#AbQ,|*)\rwvutm3kSonmlkdihg`&dc\aZ_X|V[ZYXQPt7SRQPOHGkKJIHG@d>=<A:98\}|:981U5.-2+0/.'K%$#G!E}e#z!~}v<]yxwpun4rkj0nmfN+ihaf_^$\a`_XW{>=YXWVONrLKPINGkE-IBAe(>=<;_?>=}|:3W1w543,P0).-&J*)(!E}|B"!~}|{zyr8potml2jongfkjibg`&d]\"`_XW{>=YXWVONr54JIHMFj-,HGF?>b%A@?87[;:981w543,P0).-&J*j(!EfeB"!~}_u;yrqpun4rqpihmlkjihg`&d]\"`_X|\[ZYXQuUNMLQJnH0LKJIBAe(>=<`#"8\<5Y9270T43,Pqp.-&J$)"!~D|#"y~}|u;s9qvotsrk1inglkdihg`&d]\"Z~XWVUZYXQu87SLKo2NGFjDIHGF?>bBA#"8\6;:981Uv.32+*)Mnm%$)('~D|{A!xwv{zyr8vXnsrkjoh.fNdchg`ed]#aC_^WVz=YXQPt7SRQPOHGkK-IHGF?>bBA#"8\6;:981Uv.32+*)Mnm%*#"F&%$#cy?}v<]\xwpun4rqSonmf,diha'eG]#a`_X|V[ZYXWPt76LKoIHGLEiCHGFED=aA:?>7[;:981w/4-,PO)o'&J*j(!E%edz@~}_u;yxqpo5mrqpoh.f,jibgf_%]\[!_XW{[ZYXQu87SLKo2NGFjJIHAF?c=BA@?>=<5Y38765.-Q10)o'&J*j(!E%e{z@~}|{ts9qpotsrk1oQglkd*)gIed]#DZ_^]VzZYRQuONMRKJnNGLEJCgG)(D=aA:?>=<;4X816/43,P0).-&+$H('gf|Bcb~w|u;yxwYutmrqj0nmleMib(fH%cba`_X|VUZYXWPt7SRQPOHGkEDIHG@dDC<;@?8\6|:32V0T43,+O)o'&J*)('&}C{"yxwv<tyr8vun4Ukpoh.fN+c)gIed]#DZ_^]VzTSRWPtTSLQJnH0LKJIBAe(>=BA@987[;:381Uv.32+*)Mnm%$)('~D${"y?}_uzyxqpo5srqSonmf,jihgfeG]#a`_X|V[ZYXWPt76LKo2NGFjJIH*)ED=a;@?>76;4X816/43,P*).',%I)('~Ded"y~}|u;srqvo5mlqpih.fN+cba`&d]\aZ~^]VUZSwWPUTSLpJ2NGLEiCHGFED=a;:?>7<5YX876v43,+O).-,+$H('&feBz!x}v{zsr8punsrk1inglkdihg`&d]\"Z~X]V[ZSwQVUTMRKo2NGFjDIHGF?>b%A@?87[;{921U5.3210)M-,%k#(!EfeB"y~}v{zyr8%

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


0

টিআই -83 / 84 বেসিক, 124 বাইট

For(A,1,E4
DelVar Nint(log(A→P
Ans→Q
While Ans
For(I,0,Q-Ans
10^(P+1
AnsfPart(iPart(A/10^I)/Ans→S
min(Ans={2,3,5
If S≥7 and fPart(.5S
min(remainder(S,3+2cumSum(not(binompdf(int(.5√(S)),0
N+not(Ans→N
End
P-1→P
End
If not(N
Disp A
End

প্রথম 10 কে পূর্ণসংখ্যার উপরে লুপ হয়। প্রতিটি স্ট্রিং প্রাইম পরীক্ষা করার জন্য এন-এ একটি কাউন্টার সেট আপ করুন এবং লগ (বর্তমান সংখ্যার অঙ্কের তুলনায় একটি কম একটি পুনরুদ্ধার করে। আমরা তারপর সেই সংখ্যাটি দ্বিতীয় ভেরিয়েবলের পাশে রেখেছি যাতে আমরা প্রতিটি দৈর্ঘ্যের মধ্য দিয়ে পি নিচে নামতে পারি) সর্বনিম্ন 2 ডিজিটের স্ট্রিং করে 10 ^ ... এবং আনস্ফ্ট পার্ট (আইপার্ট (,,,) প্রারম্ভিকতা পরীক্ষা করার জন্য বর্তমানের স্ট্রিং তৈরি করে, তবে নিম্নলিখিত 3 টি রেখা আংশিক উত্তর 1 বা 0 এ প্রারম্ভিকতা পরীক্ষা করে , আমরা এন বৃদ্ধি করি, এবং সমস্ত সাবস্ট্রিংগুলি এন 0 টি হয় কিনা তা পরীক্ষা করার পরে আমরা বর্তমান নম্বরটি মুদ্রণ করি।

সম্ভবত এই পরীক্ষার দিকে প্রাথমিকতা পরীক্ষার দক্ষতা বাড়াতে কিছু টুইট করা যেতে পারে? আমি কেবল আনন্দিত যে টিআই -৩ format ফর্ম্যাটিংয়ে আউটপুট সরাসরি সঞ্চয় করার চেয়ে কম বাইটে আমি একটি অ্যালগরিদম পেয়েছি!



0

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

for(;++$n<1e4;$p||print"$n
")for($p=$i=0;$i<$l=strlen($n);$i++)for($j=1;$j++<$l-$i;$p|=$k)for($k=($m=substr($n,$i,$j))-1;$k&&$m%$k--;);

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

for(;                         // level 1 loop on
  ++$n<1e4;                   // all numbers from 1 to 10,000, $n is current number
  $p||print"$n\n"             // at the end of loop for each number, print $n if all multi digit sub strings were prime ($p=0)
)
  for(                        // level 2 loop on each digit of $n
    $p=                       // $p is a flag for all sub string primes and is set to 0 for each new $n
      $i=0;                   // $i is position of current digit (and sub string start position)
    $i<$l=strlen($n);         // $l is the total digits count in $n
    $i++                      // increment $i by one
  )
    for(                      // level 3 loop to create sub strings
      $j=1;                   // $j is length of sub string, we only care about multi digit sub strings so it starts from 1
      $j++<$l-$i;             // continue the loop as long as $j has not reached last digit and increment it by one
      $p|=$k                  // THIS IS RUN AFTER LOOP LEVEL 4: update $p flag based on value of $k
                              //     $p will be left at 0 only if all of the sub strings are prime (if $k is always 0)
    )
      for(                    // level 4 loop to check each sub string to be prime
        $k=(                  // $k is set to current sub string minus 1
          $m=substr($n,$i,$j) // $m is current sub string
        )-1;                  // 
        $k && $m%$k--;        // as long as $k is more than 0 and $m%$k is not zero, decrement $k by one and continue
                              //     a prime number will only get a 0 remainder, when $k gets to 1
                              //     so $k will be 0 for primes and more than 0 for non-primes
      );
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.