divmod() পাইথনের স্ট্যান্ডার্ড লাইব্রেরির অংশ যা দুটি সংখ্যা প্যারামিটার হিসেবে নেয় এবং তাদের ভাগফল এবং অবশেষ একটি টাপল হিসেবে দেয়। এটি গাণিতিক অ্যাপ্লিকেশনে খুব কাজে আসে যেমন সংখ্যাগুলোর বিভাজ্যতা যাচাই করা এবং কোনো সংখ্যা প্রাইম কিনা তা নির্ধারণ করা।
সিনট্যাক্স
Syntax: divmod(a, b) a and b: b, a কে ভাগ করে a and b are integers or floats
উদাহরণ
নিচের উদাহরণে পূর্ণসংখ্যা এবং দশমিক দুটি কেসই দেখানো হয়েছে। divmod() প্রয়োগ করলে একটি ফলাফল টাপল পাওয়া যায় যেটিও পূর্ণসংখ্যা এবং দশমিক মান থাকতে পারে।
# পূর্ণসংখ্যার সাথে
print("5 and 2 give:", divmod(5, 2))
print("25 and 5 give:", divmod(25, 5))
# দশমিকের সাথে
print("5.6 and 2 give:", divmod(5.6, 2))
print("11.3 and 9.2 give:", divmod(11.3, 9.2))
আউটপুট
উপরোক্ত কোড চালালে নিচের ফলাফল পাবো:
5 and 2 give: (2, 1) 25 and 5 give: (5, 0) 5.6 and 2 give: (2.0, 1.5999999999999996) 11.3 and 9.2 give: (1.0, 2.1000000000000014)
শূন্য ব্যবহার করা
যদি প্রথম আর্গুমেন্ট শূন্য হয় তবে (0,0) পাওয়া যায়। আর যদি দ্বিতীয় আর্গুমেন্ট শূন্য হয় তবে প্রত্যাশা অনুযায়ী ZeroDivisionError পাওয়া যায়।
উদাহরণ
# প্রথম আর্গুমেন্ট শূন্য
print("0 and 8 give:", divmod(0, 8))
# দ্বিতীয় আর্গুমেন্ট শূন্য
print("8 and 0 give:", divmod(8, 0))
আউটপুট
উপরোক্ত কোড চালালে নিচের ফলাফল পাবো:
0 and 8 give: (0, 0)
Traceback (most recent call last):
File "xxx.py", line 6, in
print("8 and 0 give:", divmod(8, 0))
ZeroDivisionError: integer division or modulo by zero
বিভাজ্যতা যাচাই করা
ভাগ করার পর টাপলের দ্বিতীয় মান যদি ০ হয় তবে আমরা বলি প্রথম সংখ্যাটি দ্বিতীয় সংখ্যা দ্বারা বিভাজ্য। অন্যথায় বিভাজ্য নয়। নিচের উদাহরণ এটি বর্ণনা করে।
উদাহরণ
m = 12
n = 4
quotient, remainder = divmod(m, n)
print(quotient)
print(remainder)
if (remainder == 0):
print(m, ' is divisible by ', n)
else:
print(m, ' is not divisible by ', n)
আউটপুট
উপরোক্ত কোড চালালে নিচের ফলাফল পাবো:
3 0 12 is divisible by 4
সংখ্যা প্রাইম কিনা তা যাচাই করা
divmod() ব্যবহার করে একটি সংখ্যাকে নিজের থেকে ১ পর্যন্ত প্রতিটি সংখ্যা দিয়ে ভাগ করার সময় যা জেনারেট করা অবশেষগুলো থাকে সেগুলো ট্র্যাক করতে পারি। একটি প্রাইম সংখ্যার জন্য শূন্য অবশেষের কাউন্ট শুধু এক হবে কারণ নিজের ছাড়া অন্য কোনো সংখ্যা সেটিকে পূর্নাঙ্গ ভাগ করবে না। যদি শূন্য অবশেষের কাউন্ট ১-এর চেয়ে বেশি হয় তবে সংখ্যাটি প্রাইম নয়।
উদাহরণ
num = 11
a = num
# শূন্য মান থাকা অবশেষের সংখ্যা কাউন্ট করুন
count = 0
while a != 0:
q, r = divmod(num, a)
a -= 1
if r == 0:
count += 1
if count > 2:
print(num, 'is not Prime')
else:
print(num, 'is Prime')
আউটপুট
উপরোক্ত কোড চালালে নিচের ফলাফল পাবো:
11 is Prime