নিজে নিজে কর

প্রত্যেকটা প্রশ্নের উত্তর নিচে কমেন্ট কর। প্রথমে নিজে নিজে চেষ্টা কর। না পারলে অন্যদের কমেন্ট দেখে চেষ্টা কর। সেটাও করতে না পারলে, কেনো পরতেছস না, সেটা কমেন্ট কর।

প্রশ্ন-5.1রিকার্সন পদ্ধতিতে একটা সংখ্যার ফ্যাক্টরিয়াল বের কর?

উত্তরঃ

function factorial(number) {
    if (number < 1) {
        return 1;
    }
    return number * factorial(number - 1);
}
                                                

প্রশ্ন-5.2 কোন একটা সংখ্যা প্রাইম বা মৌলিক সংখ্যা কিনা সেটা বের করার একটা প্রোগ্রাম লিখ।

উত্তরঃ

প্রাইম বা মৌলিক সংখ্যা হবে যখন কোন একটা সংখ্যাকে সেই সংখ্যা আর ১ ছাড়া অন্য কোন সংখ্যা দিয়ে ভাগ করা যাবে না। যদি কোন সংখ্যা দিয়ে ভাগ করা যায় তাহলে সেই সংখ্যা দিয়ে ভাগ করলে ভাগশেষ ০ হবে। তাই নিচের ফাংশনে একটা while লুপ চালিয়ে দেয়া হয়েছে। সেটার ভিতরে সংখ্যায়টাকে divisor দিয়ে ভাগ দিয়ে ভাগশেষ ০ এর সম্যান কিনা সেটা if এর ভিতরের শর্ত দিয়ে চেক করা হচ্ছে। যদি ভাগশেষ ০ এর সমান হয় তাহলে ভাগ হয়ে গেলে তাই সংখ্যাটা মৌলিক সংখ্যা হবে না। আর যদি ভাগ না যায় তাহলে যে সংখ্যা দিয়ে ভাগ করা হচ্ছে তার মান এক করে বাড়ানো হচ্ছে। আর যদি একদম কোন সংখ্যা দিয়ে ভাগ না যায় থামলে সেটাকে প্রাইম সংখ্যা বলে true রিটার্ন করে দিছস।


function isPrime(n){
    var divisor = 2;
    
    while (n > divisor){
        if(n % divisor == 0){
        return false; 
        }
        else
        divisor++;
    }
    return true;
    }
                                                      
                                                

এখন ১৩৭ প্রাইম সংখ্যা কিনা সেটা চেক করার জন্য isPrime(137); লিখে রান কর। তখন আউটপুট হিসেবে true পাওয়া যাবে।একইভাবে ২৩৭ একটা মৌলিক সংখ্যা কিনা চেক করতে গিয়ে isPrime(237); লিখে run করলে আউটপুট হিসেবে false পাওয়া যাবে।

প্রশ্ন-5.3কোন একটা সংখ্যার গসাগু(Greatest common divisor) বের করার জন্য একটা প্রোগ্রাম লিখ।

উত্তরঃ

গসাগুকে ইংরেজিতে বলে Greatest Common Divisor বা GCD এখন তোর কাজ হবে তোকে দুইটা সংখ্যা দিলে সেই দুইটা সংখ্যার গসাগু বের করে দিতে হবে। সেটা করার জন্য


function greatestCommonDivisor(a, b){
    var divisor = 2; 
    var greatestDivisor = 1;    
    
    if (a < 2 || b < 2)
        return 1;
    
    while(a >= divisor && b >= divisor){
        if(a %divisor == 0 && b% divisor ==0){
        greatestDivisor = divisor;      
        }
        divisor++;
    }
    return greatestDivisor;
}
                                                      
                                                

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


function greatestCommonDivisor(a, b){
    if(b == 0){
        return a;
    }
    else {
        return greatestCommonDivisor(b, a%b);
    }
}
                                                     
                                                

প্রশ্ন-5.4Extra Question: Prime Factor

উত্তরঃ

function primeFactors(n){
    var factors = []; 
    var divisor = 2;
    
    while(n>2){
        if(n % divisor == 0){
            factors.push(divisor); 
            n= n/ divisor;
        }
        else{
        divisor++;
        }     
    }
    return factors;
}
                                                      
                                                

হাবলু কপি কালেক্ট করো

হাবলু কপি কালেক্ট করো

বলদ টু বস কালেক্ট করো