আমাদের একটি সংখ্যা দেওয়া হয়েছে। লক্ষ্য হল ধনাত্মক সংখ্যার ক্রমযুক্ত জোড়া খুঁজে বের করা যাতে তাদের ঘনকের যোগফল হয় N।
নিষ্পাপ দৃষ্টিভঙ্গি
1 থেকে N পর্যন্ত সমস্ত সংখ্যা অতিক্রম করুন এবং এটি একটি নিখুঁত বর্গ কিনা তা পরীক্ষা করুন। যদি মেঝে(sqrt(i)==ceil(sqrt(i)).
তাহলে সংখ্যাটি একটি নিখুঁত বর্গ।
দক্ষ পদ্ধতি
N এর নিচের নিখুঁত বর্গগুলি সূত্র ব্যবহার করে পাওয়া যাবে:ফ্লোর(sqrt(N))।
উদাহরণ দিয়ে বোঝা যাক।
ইনপুট
N=20
আউটপুট
Count of square numbers: 4 Count of non-square numbers: 16
ব্যাখ্যা
Square numbers are 1, 4, 9 and 16. Rest all are non-squares and less than 20.
ইনপুট
N=40
আউটপুট
Count of square numbers: 6 Count of non-square numbers: 34
ব্যাখ্যা
Square numbers are 1, 4, 9, 16, 25, 36. Rest all are non-squares and less than 40.
নিষ্পাপ দৃষ্টিভঙ্গি
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা পূর্ণসংখ্যা N.
নিই -
ফাংশন squareNums(int n) n নেয় এবং n এর নিচের সংখ্যার গণনা প্রদান করে যেগুলো নিখুঁত বর্গ বা অ-বর্গ।
-
প্রারম্ভিক পরিবর্তনশীল গণনাকে 0 হিসাবে নিন।
-
i=1 থেকে i<=n
পর্যন্ত লুপ ব্যবহার করে ট্র্যাভার্স করুন -
যদি ফ্লোর(sqrt(i)==ceil(sqrt(i)), তাহলে সংখ্যাটি একটি নিখুঁত বর্গ তাই সংখ্যা বৃদ্ধি।
-
সমস্ত লুপ গণনার শেষে একটি মোট সংখ্যা থাকবে যা নিখুঁত বর্গক্ষেত্র।
-
এন-বর্গ হবে এমন সংখ্যা যা অ বর্গাকার
উদাহরণ
#include <bits/stdc++.h> #include <math.h> using namespace std; int squareNums(int n){ int count = 0; for (int i = 1; i <= n; i++){ if(floor(sqrt(i))==ceil(sqrt(i))) { count++; } } return count; } int main(){ int N = 40; int squares=squareNums(N); cout <<endl<<"Count of squares numbers: "<<squares; cout <<endl<<"Count of non-squares numbers: "<<N-squares; return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of squares numbers: 6 Count of non-squares numbers: 34
দক্ষ পদ্ধতি
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
আমরা পূর্ণসংখ্যা N.
নিই -
পরিবর্তনশীল বর্গ =তল(sqrt(N)) নিন।
-
পরিবর্তনশীল বর্গক্ষেত্রে N.
এর নিচে অনেকগুলো নিখুঁত বর্গ থাকবে -
N-বর্গ হল N-এর নিচের অ-বর্গক্ষেত্রের সংখ্যা।
উদাহরণ
#include <bits/stdc++.h> #include <math.h> using namespace std; int main(){ int N = 40; int squares=floor(sqrt(N)); cout <<endl<<"Count of squares numbers: "<<squares; cout <<endl<<"Count of non-squares numbers: "<<N-squares; return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of squares numbers: 6 Count of non-squares numbers: 34