আমরা ধনাত্মক পূর্ণসংখ্যার একটি অ্যারে দেওয়া হয়. লক্ষ্য হল একটি অ্যারেতে সংখ্যার সাববারেগুলি খুঁজে বের করা যাতে প্রতিটি সাবয়ারের প্রাইম হিসাবে যোগফল থাকে। যদি অ্যারেটি হয় { 1,2,3,4 }। তাহলে সাবয়ারে হবে {1,2}, {2,3}, {3,4}। এই ধরনের সাবয়ারের সংখ্যা 3।
আসুন উদাহরণ দিয়ে বুঝতে পারি
ইনপুট − arr[] ={1,3,5,3,2};
আউটপুট − প্রাইম যোগফল সহ সাবয়ারের সংখ্যা হল:3
ব্যাখ্যা − সাব্যারেগুলি হবে :{ 3,2} যোগফল =5 মৌলিক, {3,5,3} যোগফল =11 মৌলিক এবং {3,5,3,2} যোগফল 13 মৌলিক৷
ইনপুট − arr[] ={2,4,6};
আউটপুট − প্রাইম যোগফল সহ সাবয়ারের সংখ্যা হল:0
ব্যাখ্যা − সমস্ত সাবয়ারের অ-প্রধান যোগফল আছে। {2,4}=6, {4,6}=10
নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ
আমরা একটি চালুনি ব্যবহার করে সর্বোচ্চ মানের 107-এর চেয়ে কম সমস্ত মৌলিক সংখ্যা খুঁজে বের করব এবং এটিকে ভেক্টর
-
ধনাত্মক পূর্ণসংখ্যার একটি অ্যারে অ্যারে নিন।
-
ফাংশন sub_prime(int arr[], int size) অ্যারে নেয় এবং যোগফল প্রাইম সহ সাবয়ারের গণনা প্রদান করে।
-
0 হিসাবে প্রাথমিক গণনা নিন।
-
সর্বোচ্চ মান হিসাবে temp=pow(10,7) শুরু করুন।
-
সত্য দিয়ে ভেক্টর চেক শুরু করুন।
-
চেক[0] এবং চেক[1] মিথ্যা কারণ তারা নন-প্রাইম।
-
i=2 থেকে i*i
৷ -
এখন ভেক্টর চেক[i] সত্য যদি i মৌলিক অন্যথায় মিথ্যা হয়।
-
ট্রাভার্স অ্যারে আবার লুপের জন্য দুটি ব্যবহার করে৷
-
সাব্যারেতে উপাদানের যোগফল হিসাবে পরিবর্তনশীল মোট নিন। Arr[i] থেকে arr[j]. যেখানে i=0 থেকে i
-
যদি কোন চেক [মোট] সত্য হয়. ( মোট যোগফল মৌলিক) সংখ্যা বৃদ্ধি।
-
ফলাফল হিসাবে সমস্ত লুপের শেষে গণনা করুন।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int sub_prime(int arr[], int size){ int count = 0; int temp = int(pow(10, 7)); vector check(temp + 1, true); check[0] = false; check[1] = false; for (int i = 2; i * i <= temp; i++){ if (check[i] == true){ for (int j = i * 2; j <= temp; j += i){ check[j] = false; } } } for (int i = 0; i < size - 1; ++i){ int total = arr[i]; for (int j = i + 1; j < size; ++j){ total += arr[j]; if (check[total]){ ++count; } } } return count; } int main(){ int arr[] = { 3, 5, 1, 9, 5 }; int size = sizeof(arr) / sizeof(arr[0]); cout<<"Count of subarrays with Prime sum are: "<<sub_prime(arr, size); return 0; }
আউটপুট
যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবেCount of subarrays with Prime sum are: 1