C++-এ, আমরা boost লাইব্রেরি ব্যবহার করে বড় সংখ্যা হ্যান্ডল করতে পারি। এই C++ boost লাইব্রেরি একটি ব্যাপকভাবে ব্যবহৃত লাইব্রেরি। এর ব্যবহারের বড় ডোমেন আছে। উদাহরণস্বরূপ, boost ব্যবহার করে আমরা C++-এ 264 এর মতো বড় সংখ্যা ব্যবহার করতে পারি।
এখানে আমরা boost লাইব্রেরির কিছু উদাহরণ দেখব। আমরা বড় ইন্টিজার ডেটা টাইপ ব্যবহার করতে পারি। আমরা int128_t, int256_t, int1024_t এর মতো ভিন্ন ডেটা টাইপ ব্যবহার করতে পারি। এর ব্যবহার করে আমরা 1024 পর্যন্ত প্রিসিশন সহজে পেতে পারি।
প্রথমে আমরা boost লাইব্রেরি ব্যবহার করে দুটি বিশাল সংখ্যা গুণ করব।
উদাহরণ
#include <iostream>
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;
using namespace std;
int128_t large_product(long long n1, long long n2) {
int128_t ans = (int128_t) n1 * n2;
return ans;
}
int main() {
long long num1 = 98745636214564698;
long long num2 = 7459874565236544789;
cout << "Product of " << num1 << " * " << num2 << " = " << large_product(num1, num2);
}
আউটপুট
Product of 98745636214564698 * 7459874565236544789 = 736630060025131838840151335215258722
অন্য একটি ডেটা টাইপ হল আרבিট্রারি প্রিসিশন ডেটা টাইপ। তাই আমরা cpp_int ডেটা টাইপ ব্যবহার করে যেকোনো প্রিসিশন ব্যবহার করতে পারি। এটি রানটাইমে স্বয়ংক্রিয়ভাবে প্রিসিশন অ্যাসাইন করে।
উদাহরণ
#include <iostream>
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;
using namespace std;
cpp_int large_fact(int num) {
cpp_int fact = 1;
for (int i = num; i > 1; --i)
fact *= i;
return fact;
}
int main() {
cout << "Factorial of 50: " << large_fact(50) << endl;
}
আউটপুট
Factorial of 50: 30414093201713378043612608166064768844377641568960512000000000000