এই সমস্যায়, আমাদের lValue এবং hValue দুটি মান দেওয়া হয়েছে। আমাদের কাজ হল প্রদত্ত পরিসরে সবচেয়ে বড় যমজ খুঁজে পাওয়া .
দুটি সংখ্যাকে যমজ সংখ্যা বলা হয় যদি উভয়টি মৌলিক সংখ্যা হয় এবং তাদের মধ্যে পার্থক্য 2 হয়।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
Input : lValue = 65, rValue = 100 Output : 71, 73
সমাধান পদ্ধতি
সমস্যার একটি সহজ সমাধান হল rValue - 2 থেকে lValue এ লুপ করা এবং যমজ সন্তানের জন্য i এবং (i+2) এর প্রতিটি জোড়া চেক করা এবং প্রথম যমজটি প্রিন্ট করা।
আরেকটি পদ্ধতি পরিসরে সমস্ত মৌলিক সংখ্যা খুঁজে বের করার মাধ্যমে এবং তারপর i এবং (i+2) এর বৃহত্তম জোড়ার জন্য পরীক্ষা করুন যেগুলি মৌলিক এবং
উদাহরণ
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম
#include <bits/stdc++.h> using namespace std; void findLargestTwins(int lValue, int uValue) { bool primes[uValue + 1]; memset(primes, true, sizeof(primes)); primes[0] = primes[1] = false; for (int p = 2; p <= floor(sqrt(uValue)) + 1; p++) { if (primes[p]) { for (int i = p * 2; i <= uValue; i += p) primes[i] = false; } } int i; for (i = uValue; i >= lValue; i--) { if (primes[i] && (i - 2 >= lValue && primes[i - 2] == true)) { break; } } if(i >= lValue ) cout<<"Largest twins in given range: ("<<(i-2)<<", "<<i<<")"; else cout<<"No Twins possible"; } int main(){ int lValue = 54; int uValue = 102; findLargestTwins(lValue, uValue); return 0; }
আউটপুট
Largest twins in given range: (71, 73)