আমাদের একটি সংখ্যা দেওয়া হয়েছে। লক্ষ্য হল N পর্যন্ত সংখ্যা গণনা করা যা নিখুঁত বর্গ এবং সেইসাথে নিখুঁত কিউব। উদাহরণস্বরূপ, 1, 64 উভয়ই নিখুঁত বর্গ এবং নিখুঁত কিউব।
আমরা বর্গমূল গণনা করতে sqrt() এবং একটি সংখ্যার ঘনমূল গণনা করতে cbrt() ব্যবহার করব।
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট − N=100
আউটপুট − সংখ্যার গণনা যা নিখুঁত বর্গ এবং কিউব − 2
ব্যাখ্যা − 1 এবং 64 হল শুধুমাত্র 1 থেকে 100 পর্যন্ত সংখ্যা যা নিখুঁত বর্গ এবং কিউব উভয়ই।
ইনপুট − N=5000
আউটপুট −সংখ্যার সংখ্যা যা নিখুঁত বর্গ এবং কিউব − 3
ব্যাখ্যা − 1, 64 এবং 4096 হল শুধুমাত্র 1 থেকে 5000 পর্যন্ত সংখ্যা যা নিখুঁত বর্গ এবং কিউব উভয়ই।
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা একটি পূর্ণসংখ্যা N.
নিই -
ফাংশন getCount(int n) N নেয় এবং N পর্যন্ত সংখ্যার গণনা ফেরত দেয় যেগুলি নিখুঁত বর্গ এবং নিখুঁত কিউব।
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
i=1 থেকে শুরু করে i=N পর্যন্ত, যদি ফ্লোর(sqrt(i))==ceil(sqrt(i)) তাহলে আমি একটি নিখুঁত বর্গ।
-
এখন পরীক্ষা করুন যদি ফ্লোর(cbrt(i))==ceil(cbrt(i)), যদি সত্যি হয় তাহলে iও একটি নিখুঁত কিউব। সংখ্যা বৃদ্ধি।
-
লুপ রিটার্ন শেষে ফলাফল হিসাবে গণনা.
উদাহরণ
#include <bits/stdc++.h> #include <math.h> using namespace std; int getCount(int n){ int count=0; for(int i=1;i<=n;i++){ if(floor(sqrt(i))==ceil(sqrt(i))){ if(floor(cbrt(i))==ceil(cbrt(i))){ count++; //cout<<i<<" "; } } } return count; } int main(){ int N=100; cout<<endl<<"Numbers upto N that are perfect squares and perfect cubes:"<<getCount(N); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেNumbers upto N that are perfect squares and perfect cubes:2