আমাদের একটি বড় সংখ্যা দেওয়া হয়. লক্ষ্য হল 4 দ্বারা বিভাজ্য সংখ্যার ঘূর্ণন গণনা করা।
যেমন বারবার ঘূর্ণন করা যায় না। আমরা 4 গুণ দ্বারা বিভাজ্য ব্যবহার করব। যদি শেষ দুটি সংখ্যা 4 দ্বারা বিভাজ্য হয় তবে সংখ্যাটি 4 দ্বারা বিভাজ্য। সংখ্যাটি 1234 হলে এর ঘূর্ণন হবে 1234, 4123, 3412, 2341 যার মধ্যে 3412টি 4 দ্বারা বিভাজ্য হবে কারণ শেষ দুটি সংখ্যা 12 4 দ্বারা বিভাজ্য।
আসুন উদাহরণ দিয়ে বুঝতে পারি।
ইনপুট − সংখ্যা=15324
আউটপুট − 4 দ্বারা বিভাজ্য ঘূর্ণনের গণনা হল:2
ব্যাখ্যা − ঘূর্ণন হল −
15324, 41532, 24153, 32415, 53241
এর মধ্যে 15324 এবং 41532 4 দ্বারা বিভাজ্য হবে।
ইনপুট − num=848484
আউটপুট − 4 দ্বারা বিভাজ্য ঘূর্ণনের গণনা হল − 6
ব্যাখ্যা − ঘূর্ণন হল −
848484, 484848, 848484, 484848, 848484, 484848
এই সমস্ত ঘূর্ণন 4
দ্বারা বিভাজ্যনিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
আমরা সংখ্যাটিকে একটি স্ট্রিং-এ রূপান্তর করব এবং একটি লুপ ব্যবহার করে সংখ্যাটি অতিক্রম করব। দুটি সংখ্যার প্রতিটি জোড়ার জন্য তাদের একটি পূর্ণসংখ্যাতে রূপান্তর করুন এবং 4 দ্বারা বিভাজ্যতা পরীক্ষা করুন। যদি বিভাজ্য হয় তবে গণনা বৃদ্ধি করুন।
-
সংখ্যাটিকে লম্বা লম্বা সংখ্যা হিসাবে নিন।
-
ফাংশন ঘূর্ণন_4(দীর্ঘ দীর্ঘ সংখ্যা) সংখ্যা সংখ্যা নেয় এবং 4 দ্বারা বিভাজ্য সংখ্যার ঘূর্ণনের গণনা প্রদান করে।
-
সংখ্যাটিকে string str=to_string(num) এ রূপান্তর করুন।
-
সংখ্যার সংখ্যা হবে length=str.length().
-
সংখ্যার জোড়ার পূর্ণসংখ্যা মান সংরক্ষণের জন্য অস্থায়ী পরিবর্তনশীল সংখ্যা=0 নিন।
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
যদি দৈর্ঘ্য 1 হয় তবে শুধুমাত্র একটি একক সংখ্যা উপস্থিত থাকে। এটিকে পূর্ণসংখ্যাতে রূপান্তর করুন, অঙ্ক=(str.at(0)-'0’)
-
4 দ্বারা বিভাজ্যতা পরীক্ষা করুন এবং ফলাফল 1 বা 0 হিসাবে ফেরত দিন।
-
এখন i=0 থেকে I
এর জন্য লুপ ব্যবহার করে str ট্রাভার্স করুন -
digit=(str.at(i)-'0')*10 + (str.at(i+1)-'0') ব্যবহার করে দুটি সংখ্যার সংখ্যা তৈরি করুন কারণ প্রতিটি জোড়া ঘূর্ণনের শেষ দুটি সংখ্যা হয়ে যাবে৷পি>
-
ডিজিট=(str.at(দৈর্ঘ্য-1)-'0')*10 + (str.at(0)-'0' ব্যবহার করে শেষ সংখ্যা এবং প্রথম সংখ্যা দ্বারা গঠিত জোড়ার জন্য উপরের মতো একই প্রক্রিয়া করুন; 4 দ্বারা বিভাজ্যতা পরীক্ষা করুন এবং গণনা আপডেট করুন।
-
শেষ পর্যন্ত ফলাফল হিসাবে গণনা ফেরত.
উদাহরণ
#include <bits/stdc++.h> using namespace std; int Rotation_4(long long num){ string str = to_string(num); int length = str.length(); int digit = 0, count = 0; if (length == 1){ digit=(str.at(0)-'0'); if(digit%4 == 0){ return 1; } else{ return 0; } } for (int i=0; i<(length-1); i++){ digit = (str.at(i)-'0')*10 + (str.at(i+1)-'0'); if(digit%4 == 0){ count++; } } digit = (str.at(length-1)-'0')*10 + (str.at(0)-'0'); if(digit%4 == 0){ count++; } return count; } int main(){ long long num = 24040; cout<<"Count of rotations divisible by 4 are: "<<Rotation_4(num); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of rotations divisible by 4 are: 4