একটি বহুভক্ত দ্বারা সম্ভবত আপনার কাজটি ছেড়ে দিন


101

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

সুতরাং আপনি আরও ভাল এটি পেতে, সর্বনিম্ন অক্ষর গণনা জয়।

মজার অংশ

এটি কেবল আপনার এবং আমার মধ্যে, তবে আপনার প্রোগ্রামটি অন্য ভাষায়ও বৈধ হওয়া উচিত। যদিও এই ভাষায়, এটি স্ট্রিংটি মুদ্রণ করা উচিত "যদি বস এটি খুঁজে পান তবে আমি প্রস্থান করবো"। কোডটি বারবার পড়ার সময় আপনার বসের কোনও লুকানো অপমান রয়েছে তা নিশ্চিত হয়ে নিন কারণ তিনি এখনও ভুলে যাচ্ছেন যে তিনি এখনও 17 বা 18 এর মধ্যে গণনা করেছেন কিনা। সেই কারণে আপনি কোডের কোনও অংশে "বস এই সন্ধান খুঁজে পান" এর কোনও শব্দ ব্যবহার করতে পারবেন না বা আপনি এই 5 টি শব্দের অ্যানগ্রগ্রাম ব্যবহার করতে পারবেন না।

বোনাস চ্যালেঞ্জ যার জন্য আমি একটি অনুগ্রহ তৈরি করেছি

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

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

আমি চূড়ান্ত বিচারক হব যার প্রবেশদ্বারটি এই অনুগ্রহের যোগ্য হিসাবে নিকটতম আসে।

সম্পাদনা:

আপনার বসের গণনা করার কয়েক মিনিটের পরে, তিনি আপনার কলেজের একটি তার জন্য একটি চরিত্র গণনা প্রোগ্রাম লিখতে চেয়েছিলেন। এমনকি এমন অক্ষরগুলিও যা আপনার অক্ষর গণনার দিকে দৃশ্যমান গণনা নয়।


38
ঠিক আছে, হোয়াইটস্পেসের লোকদের এখানে একটি সহজ সময় থাকবে।
ইনগো বার্ক

10
দুর্ভাগ্যক্রমে, সংক্ষিপ্ততম হোয়াইটস্পেস প্রোগ্রাম যা সেই বার্তাটি 372 টি অক্ষর মুদ্রণ করে।
থ্রি

37
তবে বস এটি মুদ্রণ করবেন এবং চরিত্রগুলি গণনা করবেন। পেছনের সাদা স্থান গণনা করা হবে না।
জোশুয়া

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

5
এখনও অবধি, সমস্ত এন্ট্রি স্পষ্টতই গুরুতর প্রোগ্রাম নয় (এলোমেলো গীব্রিশ ইত্যাদি)। এটি সত্যই আকর্ষণীয় হবে যদি কেউ একটি বহুভুজ তৈরি করেন (যার মধ্যে অবশ্যই হোয়াইটস্পেস অন্তর্ভুক্ত নয়) যা প্রথম নজরে যুক্তিসঙ্গত বলে মনে হয়েছিল (এমনকি এটি সত্যই সত্যই দীর্ঘ হলেও)।
Doorknob

উত্তর:


36

সিজেম ( গল্ফস্ক্রিপ্ট ), 60 59 বাইট

"Jg!uif!cptt!gjoet!uijt-!J!rvju/"{(}%S#];"not prime"limp4*>

1 বাইট বন্ধ করে গল্ফ করার জন্য @ এমএনবিভিমারকে ধন্যবাদ!

এটি কীভাবে কাজ করে (সিজেএম)

"Jg!uif!cptt!gjoet!uijt-!J!rvju/"  " Push that string.                                    ";
{(}%                               " Subtract 1 from each character code.                 ";
S#                                 " Find the index of the first space.                   ";
];                                 " Wrap the entire stack in an array and discard it.    ";
"not prime"                        " Push that string.                                    ";
li                                 " Read an integer from STDIN.                          ";
mp4*                               " Push 4 if it's prime and 0 if it isn't.              ";
>                                  " Remove that many chars from the start of the string. ";

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

এটি কীভাবে কাজ করে (গল্ফস্ক্রিপ্ট)

"Jg!uif!cptt!gjoet!uijt-!J!rvju/"  # Push that string.
{(}%                               # Subtract 1 from each character code.
S#];"not prime"limp4*>             # Noop followed by a comment.

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


7
+1: বস কতটা সংক্ষিপ্ত তা পছন্দ করবে। এবং তিনি অবশ্যই লুকানো স্ট্রিংটি দেখতে পাবেন না। যদিও প্রাইম চেকটি দেখতে তার সমস্যা হতে পারে। :)
ইনগো বার্ক

6
আশা করি তিনি বিশ্বাস করেন লুকানো স্ট্রিং হয় মৌলিক চেক।
ডেনিস

77

পাইথন 2 / পাইথন 3 - 128

n=int(input())
s="Isf  tthhies ,b oIs sq ufiitn.d"
print(["not "*any([n%a<1for a in range(2,n)])+"prime",s[::2]+s[1::2]][1/2>0])

পাইথন 2 এর সাথে মুখ্য সংখ্যাগুলি সনাক্ত করে , পাইথন 3 নিয়ে সমস্যায় পড়ে ।


বোনাস

__help__ = """In the forloop I'm setting the values i to n.
To be a "notPrimes", it's n % i == 0 if: 1 < i, i < n. (We
do tests i<1/2 i==1, too). Then, prints resulting, prime text.
In case i==n: quit. Just if it aborts: try."""

# read integer from command line
n=int(input())

try:

    # primes = True
    notPrimes = False

    # try each i to n
    for i in range(n):

        # ignore 0 or 1
        if i < 1 / 2 or i == 1:
            continue

        # test divisibility
        if n % i == 0:
            notPrimes = True

    # print result
    if notPrimes:
        print("not prime")
    else:
        print("prime")

except:

    # if program aborts: print help and error code
    print(__help__ [::7])

পাইথন 2 বা পাইথন 3 দিয়ে এটি ব্যবহার করে দেখুন ! (উপরের গল্ফ সংস্করণের বিপরীতে ভূমিকাগুলি পরিবর্তিত হয়েছে: পাইথন 3 হ'ল প্রধান সংখ্যা শনাক্তকারী Py পাইথন 2 এ ইস্টার ডিম রয়েছে))

দয়া করে, সহায়তার পাঠ্যে আমার খারাপ ইংরেজিটি ক্ষমা করুন! ;)

এবং আমি "ছাড়" শব্দটি ব্যবহার করি। তবে আমার প্রোগ্রামটি শেষ হয়ে গেলে আমার কোনওভাবে বর্ণনা করতে হবে। ;)


প্রস্থান? বন্ধ করবেন? বাতিল?
মাকিং হাঁস

@ মুভিংডাক: আপনার মানে আমি এই শব্দগুলির একটি ব্যবহার করতে পারি? না, তাহলে এটি কাজ করবে না। ;)
ফালকো

এটাই কি " /সমস্যা"? (পূর্ণসংখ্যা বিভাগ বনাম ফ্লোটিং পয়েন্ট বিভাগ)
ht

2
দ্বিতীয়টি আমার মনকে ফুটিয়ে তুলেছিল - যতক্ষণ না আমি কিছুটা কাছাকাছি দেখি। দেখে মনে হচ্ছে আমিও কোডের চেয়ে মন্তব্য পড়ার অভ্যাসে পড়েছি।
প্রিমো

3
দ্বিতীয়টি সত্যিই দুর্দান্ত! যশ!
রুবিক

66

বোনাস জমা (সি / সি ++ 11)

সাধারণ নিষ্পাপ পদ্ধতি ব্যবহার করে আদিমতার পরীক্ষা করা তাই মূলধারার। সে কারণেই আমি একটি ব্র্যান্ড-নতুন এলোমেলো ছাঁটাই পদ্ধতি আবিষ্কার করেছি! এই পরীক্ষাটি নিম্নরূপ:

  1. এলোমেলোভাবে যেকোন পূর্ণসংখ্যা d চয়ন করুন। এটি 2 এর চেয়ে ছোট এবং কিছুটা বেশি বড় হওয়া উচিত না sqrt(n)
  2. D যদি n , আউটপুট এর বিভাজক হয় not prime
  3. যদি আমরা এই পরীক্ষার 20sqrt(n)সময়, আউটপুট prime, অন্যথায় পুনরাবৃত্তি।

যদি সংখ্যাটি যৌগিক হয় তবে খুব কম সম্ভাবনা থাকে (প্রায় 10 -9 ) যা এটি কাজ করে না। অবশ্যই, আমি বিশ্বাস করি না যে সি / সি ++ সিউডোর্যান্ডম নম্বর জেনারেটর যথেষ্ট শক্তিশালী। এজন্য আমি আমার নিজস্ব 256-বিট এলএফএসআর জেনারেটর ব্যবহার করি !

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

/* A 256-bit linear feedback shift register generating pseudorandom
 * numbers (its period is 2^256 - 1).
 */
struct LFSRGenerator {
    unsigned seed[8];
};

void lfsr_init_generator(struct LFSRGenerator *gen){
    gen->seed[0] = 0xE840CC92; gen->seed[1] = 0xC440CAD0;
    gen->seed[2] = 0x40E6E6DE; gen->seed[3] = 0xC8DCD2CC;
    gen->seed[4] = 0xD0E840E6; gen->seed[5] = 0x4058E6D2;
    gen->seed[6] = 0xEAE24092; gen->seed[7] = 0x145CE8D2;
}
void lfsr_proceed(struct LFSRGenerator *gen){
    // LFSR taps are x^256, x^254, x^251 and x^246
    unsigned new_bit =
        ((gen->seed[7]>>0)^(gen->seed[7]>>2)^
         (gen->seed[7]>>5)^(gen->seed[7]>>10)) & 1;

    // shift seed right
    gen->seed[7] >>= 1;
    int cell;
    for(cell = 6; cell >= 0; cell--){
        gen->seed[cell+1] |= ((gen->seed[cell]&1)<<31);
        gen->seed[cell] >>= 1;
    }
    gen->seed[0] |= (new_bit<<31);  // put new bit
}
void lfsr_error(struct LFSRGenerator *gen){
    fprintf(stderr, "Error! Developer info:\n");

    int cell;
    for(cell = 0; cell < 8; cell++){
        unsigned val = gen->seed[cell];
        putc((char)(val&0xFF), stderr); val >>= 8;
        putc((char)(val&0xFF), stderr); val >>= 8;
        putc((char)(val&0xFF), stderr); val >>= 8;
        putc((char)(val&0xFF), stderr);
    }
    putc('\n', stderr);
    exit(1);
}
int lfsr_get_num(struct LFSRGenerator *gen, int min_val, int max_val){
    lfsr_proceed(gen);
    int mod_num = max_val-min_val+1;   // = number of possible results
    if(mod_num <= 0)
        lfsr_error(gen);

    // take 6 first cells and compute them mod 'modNum'
    unsigned long long result = 0;
    int cell;
    for(cell = 5; cell >= 0; cell--){
        result = ((result << 32) | gen->seed[cell]) % mod_num;
    }
    return (int)result + min_val;
}

/**********************************************************************/



void end_not_prime(){
    printf("not prime\n");
    exit(0);
}
void end_prime(){
    printf("prime\n");
    exit(0);
}



int main(){ 
    int number;
    struct LFSRGenerator gen;
    lfsr_init_generator(&gen);


    printf("Provide a number to check its primality: ");
    scanf("%d", &number);

    if(number <= 1){
        end_not_prime();
    }
    if(number == 2){
        end_prime();
    }

    // just to make sure:
    //  * make 20*sqrt(n) tests
    //  * generate random divisors from 2 to 111111/100000 * sqrt(n)
    //      (in case max range doesn't include sqrt(n)
    auto num_checks = (int)floor(sqrt(number)*20);
    auto max_range = sqrt(number);
    max_range /= 100000;
    max_range *= 111111;
    max_range = floor(max_range+0.5);

    while(num_checks--){
        int rnd_div = lfsr_get_num(&gen, 2, max_range);
        if(number % rnd_div == 0){
            end_not_prime();
        }
    }
    end_prime();
}

সি ++ 11 সঠিকভাবে কাজ করে। যাইহোক, সি সংকলকটি এন> 2 এর জন্য একটি ত্রুটিযুক্ত প্রোগ্রাম আউটপুট করছে বলে মনে হচ্ছে ...

দ্রষ্টব্য : মনে রাখবেন যে সি -lmসফলতার সাথে সংকলনের জন্য বিকল্পের (লিঙ্ক ম্যাথ লাইব্রেরি) প্রয়োজন।

max_rangeপরিবর্তনশীল তাকান । autoএই ক্ষেত্রে সি ++ 11 কীওয়ার্ড একটি "মিলে যাওয়া টাইপ" - এর সমাধান করে double। যাইহোক, সি এ এটি একটি পরিবর্তনশীল সংশোধক হিসাবে হিসাবে সংজ্ঞায়িত করা হয়েছে (যেমন staticরয়েছে) - এটি প্রকারটি সংজ্ঞায়িত করে না। সুতরাং max_rangeটাইপ একটি ডিফল্ট সি টাইপ, যে int। আমরা যখন এই ভেরিয়েবলটি 1.11111 দ্বারা গুণিত করার "প্রচেষ্টা" করি, তখন সি তে এটি 100000 দ্বারা বিভাগের সময় "অবিচ্ছিন্নভাবে" শূন্য হয়। বীজ ডাম্প। এটি "দুর্ঘটনাক্রমে" বার্তাটি যদি বস এটির সন্ধান করে তবে আমি ছেড়ে চলে যাই \

আপনি যদি নিম্নলিখিত ত্রুটিযুক্ত ফলাফল খুঁজে পান:

Error! Developer info:
If the boss finds this, I quit.

ভুল, ঠিক উপযুক্ত fprintfলাইন সরান ।


4
এটি দেখতে বেশ দৃ .়প্রত্যয়ী। একটু ব্যাখ্যা করার জন্য যত্নশীল, তাই আমাকে আমার সংকলকটি খনন করতে হবে না? :)
CompuChip

ঠিক আছে, আমি এটি যুক্ত করেছি।
mnbvmar

এটা চমৎকার!
ইনগো বার্ক

খুব সুন্দর! আমার মতামত এ পর্যন্ত সেরা উত্তর।
কম্পিশিপ

সত্যিই চিত্তাকর্ষক!
ভেন

46

গণিত / ব্রেইনফাক, 260

If[PrimeQ[Input[]],"prime","not prime"](*++++++++++[>+++>++++>+++++++>++++++++++>+++++++++++<<<<<-]>>>+++.>++.<<<++.>>>>++++++.<++.---.<<<.>>>---.>-----.++++..<<<<.>>>++++.+++.>-----.<-----.>+++++.<<<<.>>>>+.<++++.+.>-.<<<++++.<.>>.<<.>>>>--.++++.<.>-.<<<++.*)

95
ওলসন! এই কোডটি এটির প্রয়োজনের চেয়ে কয়েকগুণ বেশি! এই সমস্ত unnecesary প্লাস এবং জন্য লক্ষণ চেয়ে বড় কি? আপনি বহিষ্কৃত! না স্যার, আমি মনে করি আপনি ছেড়ে যাবেন।
স্তর নদী সেন্ট

12
আমি মনে করি আপনার কাজটি উদ্ধৃত করার জন্য এটি একটি উপায় ste
ওভাররেੈਕਟਰ

42

গল্ফস্ক্রিপ্ট / জাভাস্ক্রিপ্ট (126 125 129 130 132 134 205 207 )

এখানে গল্ফস্ক্রিপ্ট এবং জাভাস্ক্রিপ্ট চেষ্টা করুন

1.//"Jg!uif!cptt!gjoet!uijt-!J!rvju/"{(}%'
alert((/^1?$|^(11+?)\1+$/.test(Array(+prompt()+1).join(1))?"not ":"")+"prime");';#'

আমি বলব যে এটি গাণিতিকভাবে সেই গণিত সমাধানগুলির কাছাকাছি যা পুরোপুরি প্রাথমিক সংখ্যার জন্য অন্তর্নির্মিত চেক রাখে।

সম্পাদনা করুন: পিটারকে আরও দুটি ছয়টি বাইট সংরক্ষণের জন্য ধন্যবাদ !

কিছু বিশদ এখানে:

  • প্রথমটির 1.প্রয়োজন কারণ নিম্নলিখিতটি //জাভাস্ক্রিপ্টে একটি মন্তব্য, তবে গল্ফস্ক্রিপ্টে দুবার বিভাগ সম্পাদন করে। যদি স্ট্যাকের কিছু না থাকে তবে এটি ত্রুটিযুক্ত হবে, সুতরাং আমাদের এটি দুটি নম্বর দেওয়া দরকার। প্রসঙ্গত, 1.জাভাস্ক্রিপ্টে একটি পুরোপুরি বৈধ বাক্য গঠন এবং এটি উপেক্ষা করা হবে।
  • "…"{(}%স্ট্রিং নেয়, তাদের অক্ষর কোডের মানগুলিকে একের দ্বারা হ্রাস করে এবং একটি স্ট্রিং হিসাবে ধাক্কা দেয়। এই স্ট্রিংয়ের ফলাফল যা আমাদের মুদ্রণ করতে হবে।
  • ' গল্ফস্ক্রিপ্টে একটি স্ট্রিং শুরু হয় যা ডিফল্টরূপে কয়েকটি রেখার উপরে প্রসারিত হয়, যার ফলে নীচে জাভাস্ক্রিপ্ট কেবল স্ট্রিংয়ে রাখা হয়।
  • এর পরে জাভাস্ক্রিপ্ট কোড রয়েছে, যা নিয়মিত প্রকাশের মাধ্যমে প্রাথমিক সংখ্যাগুলি সনাক্ত করতে কিছুটা সুপরিচিত পদ্ধতির ব্যবহার করে।
  • ';#'গল্ফস্ক্রিপ্টে মাল্টি-লাইন স্ট্রিংটি বন্ধ করে, এটিকে বাতিল করে এবং তারপরে বাকী রেখাকে উপেক্ষা করে। জাভাস্ক্রিপ্টে, এটি কেবল একটি স্ট্রিং আক্ষরিক যা এড়ানো হবে।

1
জিএস 1+হয় )। এবং 1 1এটি 1., যা আমি সন্দেহ করি যে জেএস যতটা খুশি হবে1
পিটার টেলর

@ পিটারটেলর দুর্দান্ত, ধন্যবাদ! আমি এটি অন্তর্ভুক্ত করেছি।
ইনগো বার্ক

1
এছাড়াও, আপনি যদি কোনও স্ট্রিংয়ের উপর কোনও মানচিত্র তৈরি করেন তবে আপনি একটি স্ট্রিং পান, {)}/]""+ঠিক এটি হতে পারে {)}%
পিটার টেলর

@ পিটারটেলর আপনি মানুষ! :)
ইনগো বার্ক

1
@ প্রেমিকার উঘ, এখানেও একই ভুল। নিজের প্রতি লজ্জা. যদিও আজকের রাতের পরে আমাকে এটি ঠিক করতে হবে।
ইনগো বার্ক

34

সি ++ / সি 99 / সি 90 - 248

কোডটি C90 তে দুর্দান্তভাবে চলবে তবে C99 / C ++ এ অন্য কিছু দেখায়।

স্পষ্টতার জন্য আন-গল্ফড:

int i=105,j=115,k=32,n=79;

int main() {
    char c[] = {i, 102, k, j+1, i-1, 101, k, 98, 111, j, j, k, 102, i, 
            110, 100, j, k, ++j, i-1, i, --j, k, i, k, 113, 117, i, 116};
    for (i=0;i<31;i++) c[i] = c[i] //* */ 1 + 1
            *0;
    for(i=2;i*i<=n;i++) if(n%i==0||n<2) {printf("not "); break;}
    printf("prime %s\n",c);
}

এটি কীভাবে কাজ করে: যেহেতু C90 একক লাইন মন্তব্যগুলি স্বীকৃতি দেয় না, সমস্যা স্ট্রিংটি আর শূন্য দ্বারা গুণিত হয় না।


4
আপনার একটি বিরতি যুক্ত করা উচিত for। আপনি 6 টি ইনপুট দিলে এটি "প্রাইম নয়" প্রিন্ট করে এছাড়াও primeশূন্য এবং একের জন্যও প্রিন্ট করে
pqnet

1
আপনি কিভাবে নম্বর সরবরাহ করবেন? এছাড়াও, এস / ব্রেক}; / ব্রেক;} /;)
আঞ্জেল

@ অ্যাঞ্জেল - nশুরুতে সন্ধানের জন্য প্রাথমিক সংখ্যা নির্ধারণ করে।
nbubis

@ এনবিউবিস এটি এখনও ভুলভাবে primeশূন্য এবং একের জন্য মুদ্রণ করছে , যেমন পিকনেট আগে লক্ষ্য করেছে।
wil93

21

সিজোম / রুবি, 132 95 91 87

0_0#;;limp4*"not prime">"
'Li#wkh#ervv#ilqgv#wklv/#L#txlw1'.bytes{|b|print (b-3).chr}#";

আমার আগের সমাধানটি যথেষ্ট পরিমাণে ইঞ্জিনিয়ারড ছিল; এইটি মার্টিন বাটনার সমাধান দ্বারা ভারীভাবে অনুপ্রাণিত হয়েছিল, তার উপলব্ধি সহ যে #bytesপদ্ধতিটি স্পষ্টতই একটি ব্লক নিতে পারে।

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

রুবির মন্তব্যের অক্ষর ( #) সিজেমের এক্সপেনশনেশন অপারেটর, সুতরাং আমাদের শুরু করার আগে আমাদের স্ট্যাকের কমপক্ষে দুটি সংখ্যা প্রয়োজন, তবে দুটি খালি সংখ্যা ( 0 0) রুবিতে একটি বাক্য গঠন ত্রুটি। একটি ভাল, যদিও, এবং, সহায়কভাবে, রুবি সংখ্যায় পৃথক ( 1_234) হিসাবে আন্ডারস্কোর থাকতে পারে । _সিজেমের ডুপ্লিকেশন অপারেটর, সুতরাং ;;মন্তব্যের অভ্যন্তরে একবার আমাদের দুটিবার পপ করতে হবে। limpস্ট্যান্ডার্ড ইনপুট থেকে একটি লাইন পড়ে, এটি একটি পূর্ণসংখ্যায় রূপান্তর করে, এটি পপ করে, এবং এটি প্রাইম কিনা তা ধাক্কা দেয়।

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

সিজেএম / হোয়াইটস্পেস, 353 (25 টি মুদ্রিত হওয়া অর্থপূর্ণ) অক্ষর

চ্যালেঞ্জটির অন্তর্নিহিত প্রকৃতি এবং এই সত্য যে বসের চরিত্রগুলি গণনা করার জন্য আমাদের প্রোগ্রামগুলি মুদ্রণ করা হবে, এবং আমি হোয়াইটস্পেসের সাথে জড়িত একটি সমাধান করার পরামর্শটি গ্রহণ করেছি ।

আমার পূর্ববর্তী উক্তিটির বিপরীতে যে সংক্ষিপ্ততম হোয়াইটস্পেস প্রোগ্রামটি মুদ্রণ করে যা "বস যদি এটি খুঁজে পায় তবে আমি ছেড়ে দেব।" 372 অক্ষরের হতে হবে, এই এক 330. মধ্যে এটা আছে কৌতুক ব্যবহার করা copyবরং ASCII মান, যা সবসময় যাচ্ছি সব ঠেলাঠেলি চেয়ে নির্দেশ কোথাও স্ট্যাক থেকে পুনরাবৃত্তি অক্ষর ছিঁড়ে ছিঁড়ে অনেক বড় হতে এবং এইভাবে আরো জায়গা প্রয়োজন এবং ট্যাবগুলি এনকোড করতে। কৌতূহলীদের জন্য প্রোগ্রামটির ছদ্ম-সমাবেশের উপস্থাপনাটি এখানে:

push 0
push . push t push i push u push q
push 32 push I
copy 1 push , push s copy 7 push h copy 10
copy 5 copy 4 push d push n copy 6 push f
copy 5 copy 5 dup push o push b
copy 4 push e copy 14 copy 14
copy 3 copy 10 copy 23

0: dup jz 1 ochr jump 0
1: exit

এটা তোলে অবচিত কিন্তু এটা কাজ করে: ruby-doc.org/core-2.1.2/String.html#method-i-bytes
মার্টিন Ender

এটি কাজ করে #charsএবং #linesপাশাপাশি, যা ভবিষ্যতের চ্যালেঞ্জগুলির জন্য আমাকে মাথায় রাখতে হবে।
থ্রি

আমি ভেবেছিলাম আমি চেষ্টা করেছি charsএবং এটি কোনও কারণে কার্যকর হয়নি।
মার্টিন এন্ডার

আপনি "" এর পরিবর্তে এল এর মতো একটি ভেরিয়েবল ব্যবহার করতে পারেন, এবং আমার মনে হয় না যে আপনার + এবং
need

1
প্রকৃতপক্ষে, আপনি limp4*"not prime">এটিকে আরও খাটো করতে ব্যবহার করতে পারেন
aditsu

20

বোনাস পুরস্কার জমা (পার্ল / বি? এফ? এন? ই-? 3)

সম্পাদনা: আমি মূলত বাক্যটি মুদ্রণ করতে ভুলে গিয়েছিলাম এবং তারপরে লক্ষ্য করেছি এটি বিপরীত ক্রমে মুদ্রণ করবে। কাজটি করার পরে আমি এটি লক্ষ্য করেছি। আমি একটি বিড়ালছানা হত্যা করতে প্রস্তুত ছিল, কিন্তু আমি এখন এটি স্থির।


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

বস যদি এটি খুঁজে পান তবে আমি সত্যই ছেড়ে দেব, কারণ আমি কখনই তাকে গোপনে অপমান করতে সক্ষম হব না এবং যদি আমি এটি করতে না পারি তবে কী লাভ?

# ^ Prime Checker ([>:#,_@| Golf Inc. Ltd. | @_,#:<])
# ^ Ingo Bürk, (C) 2014
################################################################################################
# Input should be a "reasonably"
# small integer, or I can't guarantee
# that the check is fast at all.
#
# More Details:   - the numbers 0 and 1 are
#                   handled as not prime,
#                   even if some people disagree
#
#                 - because my employer prefers shortness                 
#                   over well-tested, modular and
#                   somewhat pretty code, the used method is
#                   somewhat questionable

#                 - first of all, the input is converted
#                   into a string of 1s such that the
#                   number of 1s equals the input;
#                   directly after that, a regexp is applied
#                   such that it checks if the input is prime

#                 - the regexp is not really my work, so I
#                   have to give attribution to its author
#                   if I want to use it here; I got it on
#                   stackoverflow:
#                   "http://stackoverflow.com/questions/3296050/how-does-this-regex-find-primes"

# <=> <--- a riddle^^
    use v5.10;

# Definition of prime number:
#############################
# "A prime is a positive integer with exactly two unique divisors."
# ,
#
# I should mention that input is given via stdin.
#
# quality documentation like this is why I get paid so much.
# use this script at your own risk.
# it has been known that checking primes like this can crash interpreters.
# this never happened to me, though.
# .
# "Less is more" -- Robert Browning (1812-1889) [Riddle Solution]

    print"not "if(1x shift)=~/^1?$|^(11+?)\1+$/;say"prime"

বিধি মোড় এবং ভাঙা :

  • আমি সেখানে "" শব্দটি ব্যবহার করছি, তবে এটি মুদ্রিত "" "নয়। এটি প্রযুক্তিগতভাবে অবৈধ হতে পারে, বোনাস চ্যালেঞ্জের জন্য যদি বিধিগুলি কঠোর হতে হয় তবে আমি ওপিকে সিদ্ধান্ত নিতে দেব। যদি তাই হয়, তবে তাই করা।
  • নিয়মগুলি উল্লেখ করে আমি নির্দিষ্ট শব্দ ব্যবহার করতে পারি না, তবে আমরা বাম থেকে ডানে পড়ি তাই আমি ধরে নিই যে উল্লম্বভাবে লেখা শব্দগুলি বৈধ।
  • মন্তব্যগুলিতে আমি যে ভয়ানক জিনিস লিখি তা দেখে কীভাবে আমি এই কাজটি পেয়েছি তা সম্পর্কে আমার কোনও ধারণা নেই। মানে: ধাঁধা, সত্যি?

4
হ্যাঁ, বোনাস অনুদানের জন্য আরও একটি প্রতিযোগী! :)
ফালকো

আমি বোনাস প্রশ্নের জন্য এটি অনুমতি দিতে কোন সমস্যা দেখছি। বেফঞ্জ প্রোগ্রামটি কীভাবে কাজ করে সে সম্পর্কে আমি আরও কিছু ব্যাখ্যা দেখতে চাই।
ওভাররেেক্টর

@ প্রেমিক ধন্যবাদ আমি আগামীকাল কিছু ব্যাখ্যা যোগ করতে পারি, তবে কোডের মাধ্যমে পদক্ষেপ করা এখানে উদাহরণস্বরূপ আপনাকে দেখায় যে এটি কীভাবে কাজ করে।
ইনগো বার্ক

@ প্রেমিক মনে হচ্ছে কোডটি কিছু 'তীর' অনুসরণ করে ( ^= উপরে সরানো)। কয়েকটি মন্তব্যের চিঠিগুলি একটি স্ট্যাকের উপরে রাখা হয়, যা শেষে মুদ্রিত হয়, মুদ্রণ করা হয় If the boss finds this, I quit."!dlrow olleH">:#,_@
ইনগোয়ের

বস খুব বেশি নথিপত্র সম্পর্কে অভিযোগ করতে পারে। এটিতে কিছু সন্দেহজনক চরিত্রও রয়েছে।
tbodt

17

গণিত / রুবি, 115 106 বাইট

ম্যাথামেটিকা ​​অংশটি পিটার ওলসনের জমা দিয়ে কিছুটা অনুপ্রাণিত হয়েছিল, তবে রুবির সাথে বহুবিবাহ এটি এখানে আরও বিস্তৃত।

#If[PrimeQ@Input[],"","not "]<>"prime"&@1(*
"Jg!uif!cptt!gjoet!uijt-!J!rvju/".bytes{|c|print (c-1).chr}#*)

রুবি কাজ করে, কারণ দুজনেই #ম্যাথামেটিকার সমস্ত মন্তব্য করে। গণিত যে কারণে কাজ করে তা আরও আকর্ষণীয়। আমি যে কোডটি কার্যকর করতে চাই তা হ'ল:

If[PrimeQ@Input[],"","not "]<>"prime"

তবে এটি বৈধ নয় রুবি, সুতরাং আমাকে #অন্য কোথাও যুক্ত করা দরকার । #বেনাম ফাংশনগুলির জন্য গণিতের প্যারামিটার। সুতরাং আমি #সামনে রেখেছি , যা ফলাফলের সাথে যুক্তিটি গুন করে If। হ্যাঁ, এটি কোনও স্ট্রিংয়ের সাথে এর গুণক হবে , যার অর্থ যাই হোক। তারপরে আমি এটিকে একটি বেনামে ফাংশনে পরিণত করি &এবং তত্ক্ষণাত যুক্তি দিয়ে কল করি 1। ঠিক আছে, ম্যাথমেটিকা ​​যথেষ্ট বুদ্ধিমান যে 1 দ্বারা গুণ করা সর্বদা পরিচয় এবং কেবল স্ট্রিংকে আউটপুট করে। এরপরে, রুবি কোডটি কেবল একটি ব্লক মন্তব্যে রাখা হয়।


15

সি (বোনাস জমা)

সি সংস্করণটি প্রাইম চেকার, শীর্ষে ইনপুট অ্যারে। কোন ভাষাটি ফল দেয় তা অনুমান করার চেষ্টা করুন If the boss finds this, I quit.(এটি হোয়াইটস্পেস নয়)।

// input numbers
unsigned z[] = {4};
// number of inputs
int n = 1;

int bad(unsigned);
int good(unsigned);
// [ ... ] is used to group code into blocks to make the code easier to understand
main(c){
    if(c != 1){
        // someone needs help running this program!
        // goto the end where help text is displayed!
        // remember: gotos are not evil
        goto helpme;
    }
    int i;
    // looping down is faster than using ++
    for(i = n; i--;){
        // first we check if input is divisible by two
        // checking out of loop because `>>` is faster
        //  than `/`

        // must be either greater (not divisible by 2) or equal (divisible by 2)
        unsigned y = z[i];
        if(y > (y>>1)*2){
            // is not divisible by 2
            // we must check every other number now to ensure primality
            unsigned j;
            for(j = 3; j < z[i]; ){
                // check if number is divisible by j

                // make another copy of z[i]:
                unsigned k = z[i];

                // compilers are stupid-they have a tendency 
                //  to generate really slow code for division
                //  outside of a while loop conditional
                // therefore we do division by repeated subtraction
                // [
                    // repeated subtraction-subtract until k is less than j
                    while(k / j){
                        k -= j;
                    }
                    // if k is zero-k is divisible by j and is not a prime
                    if(!k){
                        break;
                    }
                    // bring k back down to zero-there could be
                    // memory issues if we don't-very bad
                    // afterwards continue the loop
                    while(--k > 0);
                    // increment j to continue checking
                    //  we undo if we overflowed
                    //   so we don't enter an infinite loop
                    j += 1;
                    if(j < 1){ // overflow check
                        j = 4294967295u; // max unsigned int size
                    }
                // ]
            }
            // if j >= y then y must be a prime.
            // but if j < y then j < z[i] and j must be a factor
            // j - y == 0 is used to test this-if true y is a prime
            // [
                if(j - y == 0){
                    // yay - a prime!
                    // subtraction necessary as good() and bad()
                    //  shift the value printed by 1 (who knows why)
                    good(y-1);
                }else{
                    // not a prime - oh no!
                    // output this number as not a prime
                    bad(y-1);
                }
                // we are done >+–__-+<   x_x finally! >_<
            // ]
            // >.< nearly done
            // cleanup: if y or j < 0 do -- until they are 0-
            //  avoiding memory issues is vital
            while(--y); while(--j);
        }else{
            // is divisible by 2
            // determine if this is a prime: only a prime if is 2
            // also must be non-zero
            // [
                if(!y-- || y > 1){
                    // uh oh: not a prime
                    // output
                    bad(y);
                    // undo changes to the number
                    ++y; 
                }else{
                    // prime
                    // output
                    good(y);
                    // undo changes to the number
                    y += 1;
                }
                // done here <__≥ coding is exhausting
            // ]
            // clean up! clean up! everybody everywhere!
            while(y)
                // use ++ because its faster here
                // seriously: we profiled it
                ++y;
        }
    }
    return 0;
    helpme:
    // ++-++-++-++-++-++-++-++-++-++-++-++
    // +    the dreaded HELP section     +
    // ++-++-++-++-++-++-++-++-++-++-++-++
        printf("This program checks the primality"
               " of hard coded constants\n"
               "Do not run with any arguments.\n"
               "\n");
        printf("Please press any character to see more information >");
        getchar();
        printf("This is version 1 of the primality checker.\n"
               "If your version is >=1 it is new enough to work\n");
    return 0;
}

// this prints the number x+1
//  (used because profile tests have shown it to be
//   marginally faster)
print_number(unsigned x){
    x += 1;
    // scanf is way to slow.
    // itoa is nonstandard - unacceptable for an important program 
    //   such as this primality checker!
    // we are using a loop here - recursion is dangerous and should
    //   be avoided at all costs! 
    // recursion is also absurdly slow - see recursive fib() for 
    //   an example.
    int i;
    // start from the highest place then move down all the way to the ones place
    for(i = 4000000000u / (1 << 2); i; i /= 10){
        int k = x / i % 10;
        // arrays are best avoided.
        // switches make the code convoluted
        //   so we use if chains
        if(k >= 9){
            putchar('9');
        }else if(k >= 8){
            putchar('8');
        }else if(!(--k - 6)){ // after a single round of profiling 
                              // it was determined that these 
                              // particular checks were optimal.
            putchar('7');
        }else if(4 <= --k - 0){ // a check with the -0 was shown to 
                                // be marginally faster on one test
                                // than without the -0.
            putchar('6'); 
        }else if((++k + 1) / (4 + 1)){// it's optimal! really..
            putchar('5');
        }else if(3 <= k){ // constant first to avoid problems with missing `=`s.
            putchar('4');
        }else if(k > 0 && k / 2 > 0){
            putchar('3');
        }else if(++k + 1 == 1+2){ // this secret optimization is a company secret.
            putchar('2');
        }else if(++k + 42 == 44){ // another top secret company secret.
            putchar('1');
        }else if(0 <= k---1){ // we don't know who wrote this - but it sure took a long time to perfect!
            putchar('0');
        }
    }
    return i-i; // allows for a tail nonrecursion optimization.
}

bad(unsigned c){
    int *q = (int *)&c;
    if(c >= 0) // minor optimization: this was a nanosecond faster one time
        print_number(c);

    // some bit fiddling optimizations
    --*q;
    *q = -*(char *)q ^ (int)(-c * 0xBAADF823 - 43.23); 
    if(*q < ++*q) *q &= +*q * 0x4AF0 + 3 ^ (int)+0x79.32413p23; 

    // <.> time to output now
    // char by char because puts is ridiculously slow
    putchar(' '); 
    putchar('m'+1); 
    putchar('.'*'>'%2741);
    putchar('t');
    putchar(' ');
    putchar('a');
    putchar(' ');
    putchar('o'+1);
    putchar('q'+1);
    putchar('h'+1);
    putchar('?'+'.');
    putchar('7'+'.');
    putchar('<'-'6'/2);
    putchar(('.' << 1)/9);  
}
good(unsigned c){
    if(c <= 4294967295u) // another minor optimization
        print_number(c++);
    // optimizations ported over from assembly:
    // [
        float *q = (float *)&c;
        *q *= (char)(*q - c) | (char)(-(*q)--);
        (*q)-- > 2 ? *q += 1 : (*q = *q*c < c);
    // ]
    if(!(4294967295u > c + 23.3))
        // >.> these optimizations >>.<< are really <.> hard to write
        --c;

    // char by char once more.
    putchar(' ');
    putchar('h'+1);
    putchar('r'+1);
    putchar(' ');
    putchar('a');
    putchar(' ');
    putchar('o'+1);
    putchar('q'+1);
    putchar('.'*'n'/'0'); // division by zero > no division by zero.
    putchar(('<'*'-'/'.'<<3)%355);
    putchar('d'+1);
    putchar(' '+1);
    putchar('\n');
}
// end of program. the cake is a lie!

অন্য ভাষা:

Brainfuck । এটি কেবলমাত্র একটি ইনপুট নম্বর সহ ব্রেইনফাক হিসাবে চালানো উপযুক্ত স্ট্রিংটিকে আউটপুট দেয়। একাধিক ইনপুট এবং আপনার ব্রেনফাক প্রোগ্রামের ইনপুটটি নাল বাইটগুলি নিশ্চিত করতে হবে।


6
ওহ god
শ্বর

8
@ ক্রিস্টোফারএসহানসেন প্রযোজনায় নেই, আমি আশা করি ...
es1024

1
চমৎকার ব্রেনফাক: ডি
ভেন

14

পার্ল / বেফুঞ্জ -99 (108 106 110 )

আমার দ্বিতীয় জমা, ঠিক কারণ। নিয়মিত এক্সপ্রেশনও ব্যবহার করে। আমি বাজি ধরছি পার্লের চেয়ে আরও ভাল পছন্দ, উদাহরণস্বরূপ অক্টাভা, তবে কীভাবে শর্তসাপেক্ষে একটি ছোট উপায়ে প্রিন্ট করা যায় তা আমি বুঝতে পারি না।

আমি স্ট্রিংটি মুদ্রণের জন্য নিয়মটি লঙ্ঘন করছি কারণ আমি এ্যাংগ্রামগুলিকে কয়েকটি স্টারে বিভক্ত করে এড়িয়ে চলেছি।

# ".t""iuq I ,s""iht s""dnif s""sob e""ht fI">:#,_@
print"not "if(1x shift)=~/^1?$|^(11+?)\1+$/;print"prime"

চেক করার জন্য নম্বরটি স্টিডিন থেকে নেওয়া হয়েছে।

  • সম্পাদনা: আমি দুর্ঘটনাবশত "" এর পরিবর্তে "আমার" লিখেছিলাম, এটি +1 বাইটকে কাস্ট করে ফেলেছি।
  • সম্পাদনা করুন: সংরক্ষণ করা 4 বাইটের ifপরিবর্তে ব্যবহার করুনunless
  • সম্পাদনা করুন: "দ্য" সম্পর্কে ভুলে গিয়েছিলেন, এটির পাশাপাশি +2 বাইটগুলিও ভাগ করা হয়েছে।

1
কাছাকাছি befunge পটভূমি মধ্যে বিবর্ণ। এটা লক্ষ্য করা কঠিন। সাবাশ.
AndoDaan

ছোট আপত্তি, এটি "যদি আমার বস" এর পরিবর্তে "যদি বস হয়" হওয়া উচিত এটি এখনও আমার প্রিয় জমা।
ওভাররেक्टर

1
@ প্রেমিক আহ, আপনি ঠিক বলেছেন আমি প্রতিশ্রুতি দিচ্ছি যে এটি প্রতারণার চেষ্টা নয়, একটি সভার সময় এটির ধারণা পাওয়ার পরে আমি এটি একসাথে হ্যাক করেছি :) আমি এটি স্থির করেছি, ধন্যবাদ!
ইনগো বার্ক

5
আমি যুক্তি দিয়েছিলাম যে বসের কোডের পিছনের বার্তাটি লক্ষ্য করতে পারে।
টিম এস

1
আশ্চর্যজনকভাবে আমি ভেবেছিলাম আরও কিছু আছে তবে আপনি একটি নিষিদ্ধ শব্দ প্রকাশ করেছেন:
ইগবি লার্জম্যান

7

লুয়া / পিব্রাইন (পদ্ধতিগত মস্তিষ্ক * সি কে) - 813

হি ... দুঃখিত, বোকা হওয়ার চেষ্টা করতে গিয়েছিলাম। পিব্রাইন ঠিক বিএফের মতো, তবে এটি আপনাকে বিএফ কোডের পুনরায় ব্যবহারযোগ্য ব্লকগুলি ট্রিগার এবং সংজ্ঞায়িত করতে দেয়। এটির ব্যবহার সম্পূর্ণ অপ্রয়োজনীয় ছিল।

--Blua

x00=[[--(>++++++[>++++++<-]>----)
:<<:+++++++++.[-]<<:<<:<<:++++++.[-]>>++++++[<+++++>-]<++.<
<<:<<:<<:<<:------------.[-]<<:<<:<<:++++++++.[-]<<:<<:<<:+++++.[-]>.<
<<:<<:<<:++.[-]<<:<<:<<:<<:-----------------.[-]<<:<<:<<:<<:-------------..[-]>.<
<<:<<:<<:++++++.[-]<<:<<:<<:+++++++++.[-]<<:<<:<<:++++++++++++++.[-]<<:<<:<<:++++.[-]<<:<<:<<:<<:-------------.[-]>.<
<<:<<:<<:<<:------------.[-]<<:<<:<<:++++++++.[-]<<:<<:<<:+++++++++.[-]<<:<<:<<:<<:-------------.[-]<<:++++++++++++.[-]>.<
<<:<<:+++++++++.[-]>.<
<<:<<:<<:<<:---------------.[-]<<:<<:<<:<<:-----------.[-]<<:<<:<<:+++++++++.[-]<<:<<:<<:<<:------------.[-]<<:++++++++++++++.[-]-+]]
n=arg[1] or #x00 IF=string _=print EXIT=os.exit I='not prime'
for i=2,n-1 do

    if IF.find('b0ss',n%i) then _(I)EXIT() end

end
print(I:sub(5))

বার্তাটি গোপন করার খুব কার্যকর উপায় নয় ..
nbubis

@nbubis কিভাবে?
AndoDaan

5
ঠিক আছে, কেবল কোডটি দেখে আমি "বস" এবং "আমি ছেড়ে দিয়েছি" দেখি :)
এনবিউবিস

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

5
আমি জমা দিতে পছন্দ করি তবে আমি বিশ্বাস করি এটি অবৈধ। আপনি কোডটিতে "প্রস্থান" ব্যবহার করতে পারবেন না। যদিও ওপি মামলার সংবেদনশীলতা সম্পর্কে কিছু বলেনি, এমএইচ ..
ইনগো বার্ক ২

7

পাইথন 2 / রট 13 - 270 বাইট (69 টি মন্তব্য গণনা করছে না)

#Code is commented in both English and Esperanto to be more future proof.

#Read number and convert to int.
#Vs gur obff svaqf guvf, V dhvg.
x=input()

#Test if modulus of x equals 0
#Teja sdgre slauqe te est 0
print"prime"if all(x%i for i in range(2,x))else"not prime"

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

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

এটি ইংরেজী এবং "এস্পেরান্তো" উভয়কে সমন্বিত করে অন্য কোনও উপায়ে একটি বহুভক্ত। আমি আশা করি বস নিজে বহুবিবাহ নয়।


2
হুম, অবশ্যই মোটেও এস্পেরান্তোর মতো দেখায় না।
পাওলো ইবারম্যান

2

05 এ বি 1 ই / জেলি , 28 বাইট

একটি নয়, দুটি গল্ফিং ভাষা!

p,“ßṙ¬kʂUƭ_eµ$ⱮgkṪḞSėdȦṬSN€»

05AB1E এ ব্যাখ্যা:

p                                      Primality check
 ,                                     Print out; disable implicit output
  “ßṙ¬kʂUƭ_eµ$ⱮgkṪḞSėdȦṬSN€»           Push some random weird string; implicit output disabled

জেলিতে ব্যাখ্যা:

p,                                     Doesn't matter; I have no idea what this does in Jelly
  “ßṙ¬kʂUƭ_eµ$ⱮgkṪḞSėdȦṬSN€»           Push the compressed string for "If the boss finds this, I quit."

এটি অনলাইন চেষ্টা করুন! (জেলি) অনলাইনে চেষ্টা করে দেখুন! (05AB1E)


2

পাইথন, 403 বাইট

এটি বোনাস চ্যালেঞ্জের জন্য উদ্দিষ্ট। মন্তব্যগুলি বাইটকাউন্টে গণনা করা হয় না।

# Hey boss!  Here is that primality test function.  Please feel free to get rid of the comments.  I know they take up a lot of space.
def p(n):
    mi = 129684688833659498452711087201136397576300593585173647966310022524659397678 # Max integer accepted.  We all want to test big primes, but this is too big.  I did a bunch of really fancy math to come to this number.
    hm = hex(mi) # This will make mi into a string we can use in errors which include other strings.  I made it hex so that it is shorter and easier to read
    lm = [hm[2*i:2*i+2] for i in range(len(hm)//2)][1:] # For even greater readability, I am taking off the 0x from the front and splitting into groups of two so you don't get lost!
    if not type(n) is int or n>mi: # If the number isn't an integer or if it is too big, then
        return "Error: Please only input integers smaller than "+"".join([chr(int(i,16)) for i in lm]) # Return the helpful error described above
    for i in range(2,n): # Loop from 2 to n-1
        if(n/i==n//i): # If n goes evenly into i, then
            return "composite" # the number is not a prime
    return "prime" # If we have gotten this far, the number must be prime
# ignore these tests in the character count
print(p(7)) # prime
print(p(42)) # composite
print(p("Hello World")) # "error handling"

কোড মুদ্রণের নীচে পরীক্ষাগুলি:

prime
composite
Error: Please only input integers smaller than If the boss finds this, I quit.

আমি সর্বোচ্চ সংখ্যার সংজ্ঞা দিয়েছি (মাইল) গোপনীয়তা লুকায়। যদি হেক্সে রূপান্তরিত হয়, তবে প্রতিটি দুই অঙ্কের হেক্সের ASCII চিঠির প্রতিনিধিত্ব করে "যদি বস এটি খুঁজে পান তবে আমি ছেড়ে দেব" " স্নিগ্ধ অংশটি ক্রিয়াকলাপটি ব্যবহার করছে। যদি বস জানেন যে এটি কী করে এবং যথেষ্ট যত্ন সহকারে খুঁজছেন তবে তিনি জানতে পারবেন যে কোডটি কোনও গোপন বার্তা লুকিয়ে রাখে। যাইহোক আমি কিছুটা দ্বিধায়িত করেছিলাম এবং বসকে আশ্বস্ত করে আশ্বাস দিতে পারি যে এটি প্রোগ্রামটির বৈধ অংশ whole

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


এটি কি বহুবিবাহ?
মিল্কিওয়ে 90

1

সি # - 288

অবশ্যই সংক্ষিপ্ততম নয়, তবে এটি অনেক কর্তাদের দ্বারা পাস হতে পারে:

 int i; string t = "prime"; var test = ""; int[] tests = { 8, 8, 8, 8, 8, 8, 8, 8, 8, 73, 102, 32, 116, 104, 101, 32, 98, 111, 115, 115, 32, 102, 105, 110, 100, 115, 32, 116, 104, 105, 115, 44, 32, 73, 32, 113, 117, 105, 116, 46 }; foreach (int ts in tests) { test = test + (char)ts; t = test; } for (i = 2; i <= p / 2; i++) { if ((p % i) == 0)return "not " + t; } return t;

একটি পঠনযোগ্য সংস্করণ:

            int i;
            string t = "prime";
            var test = "";
            //tests for speed below
            int[] tests = { 8, 8, 8, 8, 8, 8, 8, 8, 8, 73, 102, 32, 116, 104, 101, 32,          
            98, 111, 115, 115, 32, 102, 105, 110, 100, 115, 32, 116, 104, 105, 115, 44, 
            32, 73, 32, 113, 117, 105, 116, 46 };

            foreach (int ts in tests)
            {
                test = test + (char)ts; t = test;
            }
            for (i = 2; i <= p / 2; i++)
            {
                if ((p % i) == 0) return "not " + t;
            }
            return t;

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