Factorial numbre থেকে একটি number এর সর্বোচ্চ power বের করার পদ্ধতি
আমরা আজ শিখব একটি factorial numbar থেকে একটি number এর সর্বোচ্চ ঘাত বের করব :
procedure:
মনে করুন আমরা 16! থেকে 2 এর এর সর্বোচ্চ ঘাত বের করব।
16!= 1* 2* 3* 4* 5* 6*7* 8* 9* 10* 11*12* 13*14* 15* 16
0 2 0 2 0 2 0 2 0 2 0 2 0 2 0 2
2 2 2 2
2 2
2
আমরা উপরের Example থেকে দেখতে পারি ২ দ্বারা বিভাজ্য প্রত্যেক number টির কমপক্ষে একটি 2 থাকবে,আবার 4(2*2) দ্বারা বিভাজ্য প্রত্যেক number টির কমপক্ষে দুইটি 2 থাকবে,আবার 8(2*2*2) দ্বারা বিভাজ্য প্রত্যেক number টির কমপক্ষে তিনটি 2 থাকবে আবার্ট16(2*2*2*2) দ্বারা বিভাজ্য প্রত্যেক number টির কমপক্ষে চারটি 2 থাকবে ।
এখন আসি আমাদের আসল কাজে,আমাদের প্রথমে বের করতে হবে ২ দ্বারা বিভাজ্য কয়টি সংখ্যা আছে ,তার জন্য আমাদের যে number টির factorial বের করব তাকে ২ দ্বারা ভাগ করব (16/2)=8,তাহলে আমরা বুঝলাম মোট 8 টি number আছে 2 দ্বারা বিভাজ্য ,এখন আমরা 4 দ্বারা বিভাজ্য কয়টি সংখ্যা আছে বের করব,তার জন্য আমাদের যে number টির factorial বের করব তাকে 4 দ্বারা ভাগ করব (16/4)=4,তাহলে আমরা বুঝলাম মোট 4 টি number আছে 4 দ্বারা বিভাজ্য,এখন আমরা 8 দ্বারা বিভাজ্য কয়টি সংখ্যা আছে বের করব,তার জন্য আমাদের যে number টির factorial বের করব তাকে 8 দ্বারা ভাগ করব (16/8)=2,তাহলে আমরা বুঝলাম মোট 2 টি number আছে 8 দ্বারা বিভাজ্য,এখন আমরা 16 দ্বারা বিভাজ্য কয়টি সংখ্যা আছে বের করব,(16/16)=1 1 টি number আছে 16 দ্বারা বিভাজ্য।
এখন আমরা সবগুলো number add করলে আমরা 2 এর meximum power পাব,যা হল (8+4+2+1)=15.
এভাবে আমরা 3 এর ক্ষেত্রে করতে পারি তার জন্য আমাদের 16 কে ভাগ করতে হবে 3,9...(<=16).
নিচে একটি sample code দেয়া হলোঃ
for(int i=2;i<=16;i++)
{
power+=16/i;
i*=2;
}
try this problem:
Problem link
0 comments:
একটি মন্তব্য পোস্ট করুন