এখানে আমরা দেখব কীভাবে একটি অ্যারেতে সব প্রাইম সংখ্যার যোগফল এবং সব নন-প্রাইম সংখ্যার যোগফলের এবসোলিউট পার্থক্য বের করা যায়। এই সমস্যাটি সমাধানের জন্য প্রথমে চেক করতে হবে কোনো সংখ্যা প্রাইম কিনা। প্রাইমালিটি টেস্টের একটি উপায় হলো চেক করা যে সংখ্যাটি ২ থেকে তার বর্গমূল পর্যন্ত যেকোনো সংখ্যা দ্বারা বিভাজ্য নয়। এই প্রসেস O(√n) টাইম নেয়। তারপর যোগফল বের করে এবসোলিউট পার্থক্য বের করতে হবে।
অ্যালগরিদম
diffPrimeNonPrimeSum(arr)
begin sum_p := sum of all prime numbers in arr sum_np := sum of all non-prime numbers in arr return |sum_p − sum_np| end
উদাহরণ
#include#include using namespace std; bool isPrime(int n){ for(int i = 2; i<=sqrt(n); i++){ if(n % i == 0){ return false; //not prime } } return true; //prime } int diffPrimeNonPrimeSum(int arr[], int n) { int sum_p = 0, sum_np = 0; for(int i = 0; i আউটপুট
Difference: 50