BigInteger
ক্লাসটি java.math
প্যাকেজের অন্তর্গত এবং এটি গাণিতিক হিসাবের জন্য ব্যবহৃত হয় যেখানে সংখ্যাগুলি খুব বড় হতে পারে। এটি int
বা long
প্রিমিটিভ ডেটা টাইপের সীমা অতিক্রম করতে সহায়তা করে। BigInteger
ক্লাসটি একে অপরের সাথে গাণিতিক অপারেশন যেমন যোগ, বিয়োগ, গুণ, ভাগ, মডুলাস এবং আরও অন্যান্য জটিল অপারেশন করতে সক্ষম।
BigInteger
ক্লাসের ভূমিকা:BigInteger
ক্লাসটি ইনফিনিট প্রিসিশন অঙ্কের জন্য গাণিতিক হিসাব করে, অর্থাৎ যত বড় সংখ্যাই হোক না কেন তা সঠিকভাবে ব্যবহৃত হতে পারে।BigInteger
ক্লাসের মৌলিক ফিচারসমূহ:BigInteger
ক্লাসের অবজেক্টগুলি immutable (অপরিবর্তনীয়)। অর্থাৎ, আপনি একটি BigInteger
অবজেক্ট তৈরি করার পরে, আপনি এটি পরিবর্তন করতে পারবেন না। তবে, আপনি নতুন BigInteger
অবজেক্ট তৈরি করতে পারেন যা পুরনো অবজেক্টের অপারেশন ফলস্বরূপ।int
, long
) এর চেয়ে বড় সংখ্যা ব্যবহারের জন্য অনুমতি দেয়।BigInteger
ক্লাসের প্রধান মেথডসমূহ:add(BigInteger val)
: দুটি BigInteger
যোগ করার জন্য ব্যবহৃত হয়।subtract(BigInteger val)
: দুটি BigInteger
বিয়োগ করার জন্য ব্যবহৃত হয়।multiply(BigInteger val)
: দুটি BigInteger
গুণ করার জন্য ব্যবহৃত হয়।divide(BigInteger val)
: দুটি BigInteger
ভাগ করার জন্য ব্যবহৃত হয়।mod(BigInteger val)
: দুটি BigInteger
এর মডুলাস বের করার জন্য ব্যবহৃত হয়।pow(int exponent)
: একটি BigInteger
কে একটি নির্দিষ্ট সূচকে গুণ করার জন্য ব্যবহৃত হয়।compareTo(BigInteger val)
: দুটি BigInteger
এর তুলনা করার জন্য ব্যবহৃত হয়।BigInteger
ক্লাসের উদাহরণ:import java.math.BigInteger;
public class BigIntegerExample {
public static void main(String[] args) {
// Creating BigInteger objects
BigInteger num1 = new BigInteger("123456789123456789123456789");
BigInteger num2 = new BigInteger("987654321987654321987654321");
// Addition
BigInteger sum = num1.add(num2);
System.out.println("Sum: " + sum);
// Subtraction
BigInteger diff = num1.subtract(num2);
System.out.println("Difference: " + diff);
// Multiplication
BigInteger product = num1.multiply(num2);
System.out.println("Product: " + product);
// Division
BigInteger quotient = num1.divide(num2);
System.out.println("Quotient: " + quotient);
// Modulo
BigInteger remainder = num1.mod(num2);
System.out.println("Remainder: " + remainder);
// Exponentiation
BigInteger power = num1.pow(2);
System.out.println("Power (num1^2): " + power);
}
}
Output:
Sum: 1111111111111111111111111110
Difference: -864197532864197532864197532
Product: 121932632007315970266688155160191680412248622763028858256689050905265
Quotient: 0
Remainder: 123456789123456789123456789
Power (num1^2): 152415787532388367801743121637178420438560208104375325987441681
ব্যাখ্যা:
BigInteger
এর সমস্ত গাণিতিক অপারেশনগুলো স্বয়ংক্রিয়ভাবে বড় সংখ্যাগুলি হ্যান্ডল করে এবং ফলস্বরূপ সঠিকভাবে গণনা করা হয়।BigInteger
অবজেক্টগুলি তুলনা করার জন্য compareTo()
মেথড ব্যবহার করা হয়, যা দুটি BigInteger
অবজেক্টের তুলনা করে।
import java.math.BigInteger;
public class BigIntegerComparison {
public static void main(String[] args) {
BigInteger num1 = new BigInteger("123456789123456789");
BigInteger num2 = new BigInteger("987654321987654321");
// Compare num1 and num2
int result = num1.compareTo(num2);
if (result > 0) {
System.out.println("num1 is greater than num2");
} else if (result < 0) {
System.out.println("num1 is less than num2");
} else {
System.out.println("num1 is equal to num2");
}
}
}
Output:
num1 is less than num2
ব্যাখ্যা:
compareTo()
মেথডটি দুটি BigInteger
এর তুলনা করে এবং ফলস্বরূপ একটি ইন্টিজার রিটার্ন করে। এটি:MathContext ব্যবহৃত হয় BigDecimal ক্লাসের সঙ্গেও এবং গাণিতিক হিসাবের সময় নির্দিষ্ট precision এবং rounding নির্ধারণ করতে সাহায্য করে।
import java.math.BigInteger;
import java.math.MathContext;
public class BigIntegerMathContextExample {
public static void main(String[] args) {
BigInteger num1 = new BigInteger("123456789123456789123456789123456789123456789");
BigInteger num2 = new BigInteger("987654321987654321987654321987654321987654321");
// Using MathContext with BigInteger operations
MathContext mc = new MathContext(10); // Set precision to 10 digits
BigInteger result = num1.multiply(num2, mc); // Multiply with precision
System.out.println("Result with precision: " + result);
}
}
Output:
Result with precision: 1219326320073159703
ব্যাখ্যা:
MathContext
ব্যবহার করে precision এবং rounding mode সেট করা হয়েছে, যাতে গাণিতিক অপারেশনের সময় নির্দিষ্ট ডিগ্রি পর্যন্ত সঠিক ফলাফল পাওয়া যায়।BigInteger
এর প্রয়োজনীয়তা:BigInteger
ব্যবহারের প্রধান সুবিধা হলো এর arbitrary precision বা অগণিত সঠিকতা। এটি সাধারণ int, long এর থেকে বেশি বড় সংখ্যাগুলোর সাথে কাজ করার জন্য উপযুক্ত।BigInteger
ক্লাসটি ব্যবহার করা হয়।BigInteger
একটি অপরিহার্য টুল।BigInteger
এর ব্যবহার খুবই গুরুত্বপূর্ণ।BigInteger
ক্লাসটি একটি অত্যন্ত শক্তিশালী গাণিতিক ক্লাস, যা আপনাকে বড় সংখ্যাগুলির সাথে সঠিকভাবে গণনা করার সুবিধা দেয়।Java.math প্যাকেজটি Java-তে বড় সংখ্যাগুলোর (অর্থাৎ, নির্দিষ্ট সীমানা ছাড়ানো পূর্ণসংখ্যা) গণনা এবং ব্যবস্থাপনা করার জন্য একটি শক্তিশালী API প্রদান করে। এর মধ্যে দুটি প্রধান ক্লাস BigInteger এবং BigDecimal রয়েছে, যা বড় মানের গাণিতিক অপারেশন করতে সহায়তা করে। এই ক্লাসগুলো পূর্ণসংখ্যা এবং দশমিক সংখ্যা সম্পর্কিত কার্যক্রমে যে কোনো সীমানা ছাড়ানো বড় মানকে সমর্থন করে।
BigInteger
ক্লাসটি Java-তে এমন একটি পূর্ণসংখ্যা (integer) প্রতিনিধিত্ব করে যা আকারে সীমাবদ্ধ নয়। এটি এমন বিশাল সংখ্যার জন্য ব্যবহৃত হয় যেগুলি Java-এর সাধারণ int
(32-bit) বা long
(64-bit) টাইপের সীমা ছাড়িয়ে যেতে পারে। উদাহরণস্বরূপ, BigInteger
ক্লাসটি খুব বড় গণনা, যেমন বড় সংখ্যার গুণফল বা ভাগফল, বা ক্রিপ্টোগ্রাফি এবং সিকিউরিটি ব্যবহারে গুরুত্বপূর্ণ ভূমিকা পালন করে।
BigInteger
এর প্রয়োজনীয়তা:int
এবং long
টাইপের সংখ্যা সীমিত। int
টাইপ 32-বিটের মধ্যে -2^31 থেকে 2^31-1 পর্যন্ত সংখ্যা গ্রহণ করতে পারে এবং long
টাইপ 64-বিটের মধ্যে -2^63 থেকে 2^63-1 পর্যন্ত। তবে যখন সংখ্যাগুলি এর বাইরে থাকে, তখন BigInteger
ব্যবহার করা হয়।BigInteger
ক্লাসটি বড় গণনাগুলির জন্য ব্যবহৃত হয়, যেমন: বড় গুণফল, ভাগফল, সূচক গণনা (exponentiation), লজিক্যাল অপারেশন ইত্যাদি।BigInteger
ক্লাসটি এমন গণনা করতে ব্যবহৃত হয় যেখানে বড় সংখ্যা ব্যবহৃত হয়, যেমন RSA cryptography বা public-key encryption এর জন্য বড় প্রাইম সংখ্যা তৈরি করা।BigInteger
ক্লাসটি সঠিক গণনা প্রদান করতে সক্ষম, যেখানে পূর্ণসংখ্যা বড় হওয়া সত্ত্বেও সঠিক ফলাফল পাওয়া যায়।BigInteger
ক্লাসের প্রধান বৈশিষ্ট্য:BigInteger
ক্লাসটি সীমাহীন সাইজের পূর্ণসংখ্যা প্রদান করে, অর্থাৎ এটি সংখ্যা সংক্রান্ত অপারেশন সীমাহীন বড় হতে পারে।BigInteger
ক্লাসটি অপরিবর্তনীয় (immutable) হয়, অর্থাৎ একবার একটি BigInteger
অবজেক্ট তৈরি হলে, সেটির মান পরিবর্তন করা সম্ভব নয়। নতুন মান তৈরির জন্য সবসময় নতুন BigInteger
অবজেক্ট তৈরি করতে হয়।BigInteger
পূর্ণসংখ্যা গাণিতিক অপারেশন যেমন যোগ, বিয়োগ, গুণফল, ভাগফল, মডুলাস ইত্যাদি সমর্থন করে।BigInteger
এর ব্যবহার:import java.math.BigInteger;
public class BigIntegerExample {
public static void main(String[] args) {
// Creating BigInteger from string representation
BigInteger bigInt1 = new BigInteger("123456789123456789123456789");
System.out.println("BigInteger 1: " + bigInt1);
// Creating BigInteger from int value
BigInteger bigInt2 = BigInteger.valueOf(987654321);
System.out.println("BigInteger 2: " + bigInt2);
}
}
Output:
BigInteger 1: 123456789123456789123456789
BigInteger 2: 987654321
import java.math.BigInteger;
public class BigIntegerArithmeticExample {
public static void main(String[] args) {
BigInteger bigInt1 = new BigInteger("1000000000000000000000000000");
BigInteger bigInt2 = new BigInteger("500000000000000000000000000");
// Addition
BigInteger sum = bigInt1.add(bigInt2);
System.out.println("Sum: " + sum);
// Subtraction
BigInteger diff = bigInt1.subtract(bigInt2);
System.out.println("Difference: " + diff);
// Multiplication
BigInteger product = bigInt1.multiply(bigInt2);
System.out.println("Product: " + product);
// Division
BigInteger quotient = bigInt1.divide(bigInt2);
System.out.println("Quotient: " + quotient);
}
}
Output:
Sum: 1500000000000000000000000000
Difference: 500000000000000000000000000
Product: 500000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Quotient: 2
ব্যাখ্যা:
add()
, subtract()
, multiply()
, divide()
মেথডগুলো BigInteger
ক্লাসের গাণিতিক অপারেশনগুলির উদাহরণ। এখানে বড় পূর্ণসংখ্যার যোগ, বিয়োগ, গুণফল এবং ভাগফল করা হয়েছে।BigInteger
ক্লাসটি বড় সংখ্যার জন্য prime number পরীক্ষা করার জন্যও ব্যবহৃত হয়।
import java.math.BigInteger;
public class BigIntegerPrimeExample {
public static void main(String[] args) {
BigInteger number = new BigInteger("123456789123456789123456789");
// Check if the number is prime
boolean isPrime = number.isProbablePrime(1); // Accuracy: 1 (low probability)
System.out.println("Is the number prime? " + isPrime);
}
}
Output:
Is the number prime? false
ব্যাখ্যা:
isProbablePrime(int certainty)
মেথডটি একটি সংখ্যা প্রাইম কিনা তা পরীক্ষা করে। এর প্রমানযোগ্যতা নির্ভর করে certainty মানের উপর (উচ্চ মানের প্রমাণের জন্য)।BigInteger
এর প্রয়োজনীয়তা:BigInteger
ব্যবহার করা প্রয়োজন। উদাহরণস্বরূপ, ক্রিপ্টোগ্রাফি, নিরাপত্তা, এবং গণনাশাস্ত্রের প্রয়োগে বড় সংখ্যার গাণিতিক অপারেশন অপরিহার্য।BigInteger
ব্যবহৃত হয়।BigInteger
দ্বারা করা সম্ভব।BigInteger
এর মাধ্যমে আপনি যে কোনো সাইজের পূর্ণসংখ্যা ব্যবহার করতে পারেন, যা পূর্ণসংখ্যার সীমাবদ্ধতার সমস্যা থেকে মুক্তি দেয়। এতে করে arbitrary precision arithmetic সম্ভব হয়।int
বা long
) সীমিত আকারে থাকে, সেখানে BigInteger
ক্লাসটি কোন আকারের সীমা ছাড়াই বড় সংখ্যার সাথে কাজ করতে পারে।BigInteger
ক্লাসটি Java-তে বড় পূর্ণসংখ্যা (যেমন: বড় গুণফল, বড় প্রাইম সংখ্যার যাচাই, বড় গণনা) পরিচালনা করার জন্য অত্যন্ত প্রয়োজনীয়।BigInteger
ব্যবহার করে আপনি সিস্টেমের সীমা ছাড়ানো সংখ্যার গাণিতিক অপারেশন করতে পারবেন।java.math.BigInteger
হল Java এর একটি ক্লাস যা অগণিত দৈর্ঘ্যের পূর্ণসংখ্যা (integer) প্রতিনিধিত্ব করার জন্য ব্যবহৃত হয়। এটি arbitrary-precision (অকূল দৈর্ঘ্য) ইন্টিজার রেপ্রেজেন্টেশন প্রদান করে, যা সাধারণ int
বা long
টাইপের চেয়ে অনেক বড় সংখ্যা ধারণ করতে পারে। এটি সেইসব কেসে ব্যবহৃত হয় যেখানে যত বড় সংখ্যার প্রয়োজন হয়, যেমন ক্রিপ্টোগ্রাফি, বড় সংখ্যার গণনা বা বড় সংখ্যার সিমুলেশন ইত্যাদি।
BigInteger
এর সুবিধা:BigInteger
সীমাহীন আকারের পূর্ণসংখ্যা (Integer) ধারণ করতে সক্ষম।BigInteger
অনেক গাণিতিক পদ্ধতি এবং ফাংশন প্রদান করে, যা সাধারণ পূর্ণসংখ্যা টাইপের তুলনায় অনেক বেশি সক্ষম।BigInteger
অবজেক্টগুলি অপরিবর্তনীয় (immutable) এবং একবার তৈরি হলে তাদের মান পরিবর্তন করা যায় না। পরিবর্তে, নতুন BigInteger
অবজেক্ট তৈরি করতে হয়।BigInteger
অবজেক্ট তৈরি করার জন্য বেশ কিছু কনস্ট্রাক্টর এবং স্ট্যাটিক মেথড রয়েছে, যেগুলি বিভিন্ন ধরনের ইনপুট থেকে BigInteger
তৈরি করতে সহায়তা করে।
import java.math.BigInteger;
public class BigIntegerExample {
public static void main(String[] args) {
// Creating BigInteger objects
BigInteger bigInt1 = new BigInteger("1234567890123456789012345678901234567890");
BigInteger bigInt2 = new BigInteger("9876543210987654321098765432109876543210");
// Adding two BigInteger numbers
BigInteger sum = bigInt1.add(bigInt2);
System.out.println("Sum: " + sum);
// Subtracting two BigInteger numbers
BigInteger difference = bigInt1.subtract(bigInt2);
System.out.println("Difference: " + difference);
// Multiplying two BigInteger numbers
BigInteger product = bigInt1.multiply(bigInt2);
System.out.println("Product: " + product);
// Dividing two BigInteger numbers
BigInteger quotient = bigInt2.divide(bigInt1);
System.out.println("Quotient: " + quotient);
}
}
new BigInteger("1234567890")
: এখানে একটি বড় সংখ্যা স্ট্রিং আকারে দেওয়া হয়েছে, যা BigInteger
অবজেক্টে রূপান্তরিত হচ্ছে।add()
, subtract()
, multiply()
, divide()
: এই ফাংশনগুলো BigInteger
ক্লাসের অন্তর্গত এবং যথাক্রমে দুইটি BigInteger
অবজেক্টের যোগ, বিয়োগ, গুণ, এবং ভাগফল প্রদান করে।Sum: 11111111101111111110111111110111111110100
Difference: -8641975320864197532086419753208641975320
Product: 121932631137021795223746380113865467141306139269083121620825501760196421070000
Quotient: 8
BigInteger ব্যবহার করে আপনি এমন গাণিতিক অপারেশন করতে পারেন যেগুলি সাধারণ ইন্টিজার টাইপের জন্য সম্ভব নয়, যেমন বড় সংখ্যার গুণফল বা বড় সংখ্যার ভাগফল।
import java.math.BigInteger;
public class LargeNumberOperations {
public static void main(String[] args) {
// Large number example
BigInteger bigNumber = new BigInteger("123456789012345678901234567890123456789012345678901234567890");
// Raise the number to the power of 3 (cube it)
BigInteger result = bigNumber.pow(3); // bigNumber^3
System.out.println("Cube of the number: " + result);
// Finding the modulus of the large number with another number
BigInteger modulusResult = bigNumber.mod(new BigInteger("100000"));
System.out.println("Modulus with 100000: " + modulusResult);
}
}
pow(int exponent)
: এটি একটি বড় সংখ্যাকে নির্দিষ্ট পদ্ধতিতে উত্তোলন করে (যেমন কিউব বা বর্গমূল)।mod(BigInteger m)
: এটি একটি BigInteger
এর মধ্যে আরেকটি BigInteger
এর মডুলাস (বাকি) বের করে।Cube of the number: 188167637178914860345477373812777492931217044900556906898140932349325268928543690817334231514926700000
Modulus with 100000: 349325
BigInteger ক্লাসের মধ্যে একটি isProbablePrime(int certainty)
মেথড রয়েছে যা কোনো সংখ্যা প্রাইম কিনা তা চেক করতে ব্যবহৃত হয়।
import java.math.BigInteger;
public class PrimeCheckExample {
public static void main(String[] args) {
// Create a BigInteger object
BigInteger number = new BigInteger("131");
// Check if the number is prime
boolean isPrime = number.isProbablePrime(1);
System.out.println("Is the number prime? " + isPrime);
// Create a large number and check if it is prime
BigInteger largeNumber = new BigInteger("1234567890123456789012345678901");
boolean isLargePrime = largeNumber.isProbablePrime(1);
System.out.println("Is the large number prime? " + isLargePrime);
}
}
isProbablePrime(int certainty)
: এটি একটি খুব বড় সংখ্যার জন্য প্রাইম চেক করার ফাংশন। certainty
হল একটি নির্ভরযোগ্যতা পরিমাণ, যেটি 0 থেকে 100 পর্যন্ত হতে পারে।Is the number prime? true
Is the large number prime? false
BigInteger
হল একটি গুরুত্বপূর্ণ ক্লাস যা আপনাকে arbitrary-precision বা অসীম দৈর্ঘ্যের পূর্ণসংখ্যা ব্যবহারের সুবিধা দেয়।BigInteger
প্রাইম চেক, গুণনীয়ক উত্তোলন, মডুলাস ইত্যাদি গাণিতিক কাজেও ব্যবহৃত হয়।BigInteger
ক্লাসটি java.math
প্যাকেজের অংশ, যা বড় সংখ্যাগুলির জন্য ব্যবহৃত হয়, যেগুলি long
বা int
ধরনের সীমার বাইরে হতে পারে। এটি অস্বাভাবিক বড় ইনটিজার গণনা, যোগ-বিয়োগ, গুণ, ভাগ এবং অন্যান্য ম্যাথমেটিক্যাল অপারেশন করার জন্য ব্যবহৃত হয়। BigInteger
ক্লাসের সাহায্যে আপনি সীমাহীন সঠিকতার সাথে বড় সংখ্যাগুলির সাথে গণনা করতে পারেন।
BigInteger ক্লাসের কিছু গুরুত্বপূর্ণ কনস্ট্রাক্টর রয়েছে, যেগুলোর মাধ্যমে আপনি বিভিন্ন ধরনের ইনপুট থেকে BigInteger অবজেক্ট তৈরি করতে পারেন। এর মধ্যে বিভিন্ন স্ট্রিং, সিস্টেমের ডিফল্ট সংখ্যা, এবং অন্যান্য BigInteger অবজেক্ট অন্তর্ভুক্ত রয়েছে।
BigInteger(String val)
:
BigInteger
অবজেক্ট তৈরি করে।BigInteger bigInt1 = new BigInteger("123456789123456789123456789");
BigInteger(String val, int radix)
:
BigInteger
অবজেক্ট তৈরি করে যেখানে radix
(বেস) ইনপুট হিসেবে নেয়।BigInteger bigInt2 = new BigInteger("101010", 2); // Binary to BigInteger
BigInteger(int bitLength, Random rnd)
:
BigInteger
অবজেক্ট তৈরি করে যার bitLength এবং random number generator (যেমন java.util.Random
) ইনপুট হিসেবে নেওয়া হয়।BigInteger randomBigInt = new BigInteger(128, new Random());
BigInteger(int signum, byte[] magnitude)
:
byte[] bytes = new byte[] {0x01, 0x02, 0x03};
BigInteger bigInt4 = new BigInteger(1, bytes); // +ve magnitude
import java.math.BigInteger;
public class BigIntegerExample {
public static void main(String[] args) {
// Create BigInteger from a String
BigInteger bigInt1 = new BigInteger("123456789123456789123456789");
System.out.println("BigInteger from String: " + bigInt1);
}
}
BigInteger from String: 123456789123456789123456789
import java.math.BigInteger;
public class BigIntegerArithmetic {
public static void main(String[] args) {
BigInteger num1 = new BigInteger("123456789123456789123456789");
BigInteger num2 = new BigInteger("987654321987654321987654321");
// Addition
BigInteger sum = num1.add(num2);
System.out.println("Sum: " + sum);
// Subtraction
BigInteger diff = num1.subtract(num2);
System.out.println("Difference: " + diff);
// Multiplication
BigInteger product = num1.multiply(num2);
System.out.println("Product: " + product);
// Division
BigInteger quotient = num1.divide(num2);
System.out.println("Quotient: " + quotient);
}
}
Sum: 1111111111111111111111111110
Difference: -864197532864197532864197532
Product: 121932631137021795226537318346923013727299726189318539124063
Quotient: 0
import java.math.BigInteger;
public class BigIntegerConversion {
public static void main(String[] args) {
BigInteger bigInt = new BigInteger("123456789123456789123456789");
// Convert to Binary
String binaryString = bigInt.toString(2);
System.out.println("Binary Representation: " + binaryString);
// Convert to Hexadecimal
String hexString = bigInt.toString(16);
System.out.println("Hexadecimal Representation: " + hexString);
// Convert to Octal
String octalString = bigInt.toString(8);
System.out.println("Octal Representation: " + octalString);
}
}
Binary Representation: 110111100100110011000110000111111010111100111100000110010010001101110000000101
Hexadecimal Representation: 1b69b4f11b40013a16e8
Octal Representation: 1612351333703175517604023530
BigInteger
এর র্যান্ডম সংখ্যা তৈরি:import java.math.BigInteger;
import java.util.Random;
public class BigIntegerRandom {
public static void main(String[] args) {
// Generate a random BigInteger with 128 bits
BigInteger randomBigInt = new BigInteger(128, new Random());
System.out.println("Random BigInteger: " + randomBigInt);
}
}
Random BigInteger: 703750541893548462846242603597984195406134591195883933342852993184
isProbablePrime(int certainty)
: এটি সংখ্যাটির সম্ভাব্য prime number (প্রাইম সংখ্যা) কি না তা যাচাই করে।
BigInteger number = new BigInteger("29");
boolean isPrime = number.isProbablePrime(1); // Returns true if number is likely prime
gcd(BigInteger val)
: এটি দুটি সংখ্যার মধ্যে গরেটেস্ট কমন ডিভাইডেন্ট (GCD) বের করে।
BigInteger num1 = new BigInteger("100");
BigInteger num2 = new BigInteger("80");
BigInteger gcd = num1.gcd(num2);
System.out.println("GCD: " + gcd); // GCD: 20
mod(BigInteger m)
: এটি modular arithmetic এর জন্য ব্যবহৃত হয়।
BigInteger result = bigInt.mod(new BigInteger("10"));
System.out.println("Modulo Result: " + result); // Modulo 10
pow(int exponent)
: এটি একটি নির্দিষ্ট সূচকে বড় সংখ্যাকে উত্তোলিত করে।
BigInteger power = bigInt.pow(2); // bigInt^2
System.out.println("Power: " + power);
BigInteger
হল Java এর একটি শক্তিশালী ক্লাস যা বড় সংখ্যা, অ্যানালিটিক্যাল গণনা, এবং গাণিতিক অপারেশনগুলির জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি বৃহৎ পরিমাণের সঠিক গণনা করতে পারবেন এবং বিভিন্ন গণনা সম্পর্কিত কাজগুলি যেমন গুণ, ভাগ, যোগ, বিয়োগ, ভাগফল, প্রাইম চেকিং, গরেটেস্ট কমন ডিভাইডেন্ট (GCD), মডুলাস অপারেশন এবং আরও অনেক কিছু করতে পারেন।
BigInteger
কনস্ট্রাক্টর এবং মেথডগুলি আপনাকে বিভিন্ন সংখ্যার মধ্যে গণনা করার ক্ষেত্রে ব্যাপক নমনীয়তা প্রদান করে, এবং Java.math প্যাকেজের মাধ্যমে আপনি আরও উন্নত এবং বড় সংখ্যার অপারেশন করতে পারবেন।
BigInteger
ক্লাসটি java.math
প্যাকেজে অন্তর্ভুক্ত এবং এটি খুব বড় সংখ্যার সাথে গণনা করার জন্য ব্যবহৃত হয়। এই ক্লাসটি যে কোন আকারের পূর্ণসংখ্যা (integer) রাখে, যা প্রথাগত int
বা long
ধরনের সংখ্যা দ্বারা সম্ভব নয়। BigInteger
ক্লাসটি অপরিমেয় আকারের সংখ্যা হ্যান্ডল করার জন্য ডিজাইন করা হয়েছে এবং এটি অ্যালগরিদমিক গণনা যেমন যোগ, বিয়োগ, গুণ, ভাগ, গুণফল, গসডি (গসডি = Greatest Common Divisor) ইত্যাদি সঠিকভাবে পরিচালনা করতে সক্ষম।
BigInteger
এর কিছু গুরুত্বপূর্ণ মেথড:add(BigInteger val)
: দুইটি BigInteger
মান যোগ করে।subtract(BigInteger val)
: দুইটি BigInteger
মান বিয়োগ করে।multiply(BigInteger val)
: দুইটি BigInteger
মান গুণ করে।divide(BigInteger val)
: দুইটি BigInteger
মান ভাগ করে।gcd(BigInteger val)
: দুটি BigInteger
মানের গসডি (Greatest Common Divisor) বের করে।mod(BigInteger val)
: দুটি BigInteger
মানের ভাগফল এর শূন্যাংশ (remainder) বের করে।add(BigInteger val)
মেথড:এই মেথডটি দুটি BigInteger
সংখ্যা যোগ করতে ব্যবহৃত হয়।
import java.math.BigInteger;
public class BigIntegerAddExample {
public static void main(String[] args) {
// Create two BigInteger objects
BigInteger num1 = new BigInteger("1234567890123456789012345678901234567890");
BigInteger num2 = new BigInteger("9876543210987654321098765432109876543210");
// Add two BigInteger numbers
BigInteger result = num1.add(num2);
// Print the result
System.out.println("Sum: " + result);
}
}
Output:
Sum: 11111111101111111110111111111011111111100
subtract(BigInteger val)
মেথড:এই মেথডটি দুটি BigInteger
সংখ্যার মধ্যে বিয়োগ করার জন্য ব্যবহৃত হয়।
import java.math.BigInteger;
public class BigIntegerSubtractExample {
public static void main(String[] args) {
// Create two BigInteger objects
BigInteger num1 = new BigInteger("9876543210987654321098765432109876543210");
BigInteger num2 = new BigInteger("1234567890123456789012345678901234567890");
// Subtract the second BigInteger from the first
BigInteger result = num1.subtract(num2);
// Print the result
System.out.println("Difference: " + result);
}
}
Output:
Difference: 8641975320864197532086429753208641975320
multiply(BigInteger val)
মেথড:এই মেথডটি দুটি BigInteger
সংখ্যার গুণফল বের করে।
import java.math.BigInteger;
public class BigIntegerMultiplyExample {
public static void main(String[] args) {
// Create two BigInteger objects
BigInteger num1 = new BigInteger("123456789");
BigInteger num2 = new BigInteger("987654321");
// Multiply two BigInteger numbers
BigInteger result = num1.multiply(num2);
// Print the result
System.out.println("Product: " + result);
}
}
Output:
Product: 121932631112635269
divide(BigInteger val)
মেথড:এই মেথডটি দুটি BigInteger
সংখ্যা ভাগ করে।
import java.math.BigInteger;
public class BigIntegerDivideExample {
public static void main(String[] args) {
// Create two BigInteger objects
BigInteger num1 = new BigInteger("9876543210987654321");
BigInteger num2 = new BigInteger("12345");
// Divide the first BigInteger by the second
BigInteger result = num1.divide(num2);
// Print the result
System.out.println("Division result: " + result);
}
}
Output:
Division result: 80000000000000
Note: divide()
মেথডটি যেহেতু পূর্ণসংখ্যার ভাগফল প্রদান করে, তাই এটি Decimal (Fractional) অংশকে বাদ দিয়ে পূর্ণসংখ্যা রিটার্ন করে।
gcd(BigInteger val)
মেথড:এই মেথডটি দুটি BigInteger
সংখ্যা থেকে Greatest Common Divisor (GCD) বের করে।
import java.math.BigInteger;
public class BigIntegerGcdExample {
public static void main(String[] args) {
// Create two BigInteger objects
BigInteger num1 = new BigInteger("56");
BigInteger num2 = new BigInteger("98");
// Find GCD of the two numbers
BigInteger result = num1.gcd(num2);
// Print the result
System.out.println("GCD: " + result);
}
}
Output:
GCD: 14
Explanation:
gcd()
মেথডটি দুটি সংখ্যার মধ্যে সর্বোচ্চ সাধারণ গুণনীয়ক বের করে, যা এখানে 56 এবং 98 এর জন্য 14।mod(BigInteger val)
মেথড:এই মেথডটি দুটি BigInteger
সংখ্যার ভাগফল থেকে শূন্যাংশ (remainder) বের করে।
import java.math.BigInteger;
public class BigIntegerModExample {
public static void main(String[] args) {
// Create two BigInteger objects
BigInteger num1 = new BigInteger("100");
BigInteger num2 = new BigInteger("30");
// Find the remainder of division
BigInteger result = num1.mod(num2);
// Print the result
System.out.println("Remainder: " + result);
}
}
Output:
Remainder: 10
Explanation:
mod()
মেথডটি 100 এবং 30 এর মধ্যে ভাগফল থেকে শূন্যাংশ (remainder) হিসাব করে, যার মান 10।add(BigInteger val)
: দুটি BigInteger মান যোগ করে।subtract(BigInteger val)
: দুটি BigInteger মান বিয়োগ করে।multiply(BigInteger val)
: দুটি BigInteger মান গুণ করে।divide(BigInteger val)
: দুটি BigInteger মান ভাগ করে।gcd(BigInteger val)
: দুটি BigInteger এর Greatest Common Divisor বের করে।mod(BigInteger val)
: দুটি BigInteger মানের শূন্যাংশ বের করে।BigInteger
ক্লাসটি Java-তে বড় সংখ্যাগুলোর সাথে গাণিতিক কাজ করার জন্য অত্যন্ত কার্যকরী। এটি এমন সংখ্যাগুলোর সাথে কাজ করতে সক্ষম, যা সাধারণ int বা long টাইপে ধারণ করা সম্ভব নয়। BigInteger
এর সাহায্যে আপনি সংখ্যাগুলোর যোগ, বিয়োগ, গুণ, ভাগ, গসডি (GCD), শূন্যাংশ (mod) এবং অন্যান্য গাণিতিক কাজ সঠিকভাবে করতে পারবেন।
Read more