Posts

Showing posts from July, 2023

Find the Way to express a number by Consecutive Sum of integers

 একদম সোজা । কোন একটা নাম্বার কে কত ভাবে ধারাবাহিক নাম্বারের যোগফল দ্বারা বের করা যায় তা জানতে হলে আগে ওই নাম্বারের প্রাইম ফেক্টোরাইজেশন করতে হবে পরে আমরা সেখান থেকে বেজোড় প্রাইম ফেক্টর গুলুর পাওয়ারের যোগ করলেই বলতে পারব । যেমন ১২ এর প্রাইম ফেক্টর গুলু হচ্ছে, ১২=২*২*৩; এখানে বেজোড় প্রাইম ফেক্টর  কেবল ৩, যার পাওয়ার ১; সুতরাং , আমাদের Way হচ্ছে = ১+০ = ১; কিন্তু কথা হচ্ছে, যেহেতু সকল নাম্বারের একটা কমন ডিভিজর হল ১ এবং সেইসাথে যেহেতু ১ একটি বেজোড় নাম্বার, সেহেতু আমরা আমাদের আগের প্রাপ্ত মানের সাথে ১ যোগ করে দেব ।  So, the Way is = ১+(১) = ২; আবার, ৯=৩^১*৩^১; সুতরাং হবার কথা ১+১=২; যেহেতু ১ সকল নাম্বারের ডিভিজর এবং বেজোড় নাম্বার সো Way হবে = ২+ (১) = ৩; এবার কোডটা নিজে নিজে করে ফেলুন । আমি যদি প্রাইম নাম্বার কিংবা প্রাইম ফেক্টর বের করতে জানেন তাহলে এর কোড করা আপনার জন্য কোন ব্যাপার না । তবু নিচে কোডের লিঙ্ক টা দিয়ে দিলাম ... কোন প্রবলেমে না পড়া পর্যন্ত দেখবেন না আশা করি ।  (  বিঃদ্রঃ আগে নিজে চেষ্টা করুন, না পারলে কোড দেখে এনালাইসিস করে নিজের মত করে করুন । কখনও কারো...

Almost Prime Numbers

                                         ==   Almost Prime Number   == Almost Prime Number হচ্ছে সেই সকল প্রাইম নাম্বার যাদের প্রাইম ফেক্টোরিজেশন কেবলেই একটা প্রাইম নাম্বার । যেমনঃ               ১-১০ পর্যন্ত Almost Prime Number ৩ টি ।                 ৪=২*২ ; ৮=২*২*২ ; ৯=৩*৩ ; এখানে ৪,৮,৯ প্রতিটি সংখ্যার প্রাইম ফেক্টোরিজেশন কেবল একটা সংখ্যা । ৪ ও ৮ এর ক্ষেত্রে ২ এবং ৯ এর ক্ষেত্রে ৩ । আবার ১১-২০ পর্যন্ত Almost Prime Number ১ টি । তা হল ১৬=২*২*২*২ ;  কিন্তু লক্ষ্য করুন, Almost Prime Number গুলুর একটি সংখ্যাও প্রাইম নাম্বার নয় । তো, সে ক্ষেত্রে আপনি যদি প্রতিটি প্রাইম নাম্বারের ২ থেকে ইনফিনিটি সংখ্যক পাওয়ারের কথা চিন্তা করেন দেখবেন আপনি আপনার Almo...

Euler's totient function

  Euler's totient function নাম্বার থিওরির খুব গুরুত্তপূর্ণ একটা টপিক হচ্ছে এই Euler's totient function. যা, বলা যায় অনেকটা না জানলেই না । আমি মনে করি এই ফাংশনের ক্রিয়া কর্ম না জানলে নাম্বার থিওরির বিশাল একটা পার্ট আপনার কাছে অজানাই থেকে যাবে ।  তাই এই নিয়ে কিছু বলব বলে ঠিক করেছি ...  শুরুতে বলি ... তখন সালটা   ১৭৬৩ । লিওনার্দ অয়লার তখন সবে এই ফাংশন টা আবিস্কার করেছেন । কিন্তু দূর্ভাগ্যবশত তিনি কোন সিম্বল খুজে পাচ্ছিলেন না এটা প্রকাশ করার জন্য ।  ১৭৮৪ সালে এক পাব্লিকেশনের উদ্দ্যেশ্যে তিনি এই বিষয়ে আবার স্ট্যাডি করেন এবং এটাকে প্রকাশ করার জন্য একটা গ্রিক সিম্বল ব্যবহার করেন যা দেখতে অনেকটা ' π ' এর মত ।  তখন তিনি সেটাকে πD হিসেবে প্রকাশ করেছিলেন যা বুঝাচ্ছে "the multitude of numbers less than D, and which have no common divisor with it". এরপর ১৮০১ সালে গণিতবিদ গাউস  Disquisitiones Arithmeticae   তে একটি স্ট্যান্ডার্ড নোটেশনের মাধ্যমে অয়লারের এই ফাংশনটি ব্যবহার করেন, এবং সেই   স্ট্যান্ডার্ড নোটেশনটি ছিল  φ A  (আমরা বলি phi of A) ...

Seieve of Eratosthenes

  সিভ অফ এরাটোসথেনিসের ইফিসিয়েন্ট ভার্সনঃ বিটওয়াইজ সিভ  প্রথমে কোডটা দেখা যাকঃ   কোডঃ // bitwise Seieve of Eratosthenes #include <iostream> #include <cstdio> #include <cstring> #include <map> #include <string> #include <vector> #include <cmath> #include <cctype> #include <sstream> #include <set> #include <list> #include <stack> #include <queue> #include <algorithm> #define sf scanf #define pf printf #define sfint scanf ("%d %d",&a,&b) #define sfl scanf ("%ld %ld",&a,&b) #define sfll scanf ("%lld %lld",&a,&b) #define sfd scanf ("%lf %lf",&a,&b) #define sff scanf ("%f %f",&a,&b) #define lp1(i,n) for(i=0;i<n;i++) #define lp2(i,n) for(i=1;i<=n;i++) #define LL long long #define L long #define mem(c,v) memset(c,v,sizeof(c)) #define ui unsigned int #define ull unsigned long long int #define nl puts("") ...