কম্পিউটার

একটি মৌলিক সংখ্যা হিসাবে যোগফল সহ জোড়া গণনা করুন এবং C++ এ n এর চেয়ে কম


ইনপুট হিসাবে আমাদের একটি ধনাত্মক সংখ্যা n দেওয়া হয়েছে। লক্ষ্য হল সম্ভাব্য জোড়ার (i,j) গণনা খুঁজে বের করা যাতে প্রতিটি জোড়ার যোগফল (i+j) থাকে যা মৌলিক এবং n-এর চেয়ে কম। এছাড়াও i !=j এবং i,j>=1 যদি n 4 হয় তবে শুধুমাত্র 1 জোড়া সম্ভব যা (1,2)। এখানে 1+2 =3 প্রাইম এবং 4 এর কম। এছাড়াও 1,2>=1।

আসুন উদাহরণ দিয়ে বুঝতে পারি।

ইনপুট − n=7

আউটপুট − মৌলিক সংখ্যা হিসাবে যোগফল সহ জোড়ার সংখ্যা এবং n-এর চেয়ে কম −3

ব্যাখ্যা − জোড়া হবে (1,2), (1,4), (2,3)। যোগফল 3, 5, 5 মৌলিক এবং 7 এর কম।

ইনপুট − n=10

আউটপুট − মৌলিক সংখ্যা হিসাবে যোগফল সহ জোড়ার সংখ্যা এবং n-এর চেয়ে কম হল −6

ব্যাখ্যা

জোড়া হবে (1,2), (1,4), (2,3), (1,6), (2,5), (3,4)।

যোগফল 3, 5, 5, 7, 7, 7 মৌলিক এবং 10 এর কম।

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

এই পদ্ধতিতে আমরা প্রথমে ফাংশন check_prime(bool check[], int temp)-এ সিভ অফ সুন্দরম ব্যবহার করে n-এর চেয়ে কম সমস্ত মৌলিক সংখ্যা খুঁজে পাব।

এছাড়াও প্রতিটি বিজোড় সংখ্যা টেম্পের জন্য, সমষ্টি টেম্প আছে এমন স্বতন্ত্র জোড়ার গণনা হবে temp/2।

2 ব্যতীত সমস্ত মৌলিক সংখ্যাই বিজোড় তাই যদি আমরা n-এর থেকে কম কোন মৌলিক সংখ্যা পাই তাহলে জোড়া গণনার জন্য আমরা temp/2 যোগ করব।

  • ইনপুট হিসাবে ভেরিয়েবল n নিন।

  • ফাংশন prime_pair(int n) n নেয় এবং একটি মৌলিক সংখ্যা হিসাবে যোগফল এবং n এর চেয়ে কম যোগ সহ জোড়ার গণনা প্রদান করে।

  • 0 হিসাবে প্রাথমিক গণনা নিন।

  • যেহেতু সুন্দরমের চালনি ইনপুট n এর জন্য 2*n+2 এর কম মৌলিক সংখ্যা তৈরি করে। আমরা n এর অর্ধেক কমিয়ে temp_2 এ সংরক্ষণ করি।

  • ফর্মের সমস্ত সংখ্যা ( i+j+2*i*j ) কে True হিসাবে চিহ্নিত করতে দৈর্ঘ্য temp_2 এর একটি অ্যারে চেক[] তৈরি করুন। মিথ্যা হিসাবে সমস্ত উপাদান দিয়ে এটি শুরু করুন৷

  • ফাংশন check_prime(bool check[], int temp) ব্যবহার করে, ফর্মের সংখ্যার (i+j+2*i*j) জন্য সত্য সহ চেক শুরু করুন। এবং এই যোগফল

  • এখন ইনডেক্স i=0 থেকে i এর জন্য লুপ ব্যবহার করে চেক[] অতিক্রম করুন

  • প্রতিটি চেকের জন্য [i] মিথ্যা হিসাবে, মৌলিক সংখ্যা হবে temp=2*i+1।

  • টেম্প পর্যন্ত যোগ করা জোড়া temp/2 হবে।

  • গণনা করতে টেম্প/2 যোগ করুন।

  • ফর লুপের শেষে আমাদের মোট জোড়া থাকবে যার যোগফল প্রাইম এবং n-এর চেয়ে কম হবে।

  • ফলাফল হিসাবে রিটার্ন গণনা।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
void check_prime(bool check[], int temp){
   for (int i=1; i<=temp; i++){
      for (int j=i; (i + j + 2*i*j) <= temp; j++){
         check[i + j + 2*i*j] = true;
      }
   }
}
int prime_pair(int n){
   int count = 0;
   int temp;
   int temp_2 = (n-2)/2;
   bool check[temp_2 + 1];
   memset(check, false, sizeof(check));
   check_prime(check, temp_2);
   for (int i=1; i <= temp_2; i++){
      if (check[i] == false){
         temp = 2*i + 1;
         count += (temp / 2);
      }
   }
   return count;
}
int main(){
   int n = 10;
   cout<<"Count of pairs with sum as a prime number and less than n are: " <<prime_pair(n);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Count of pairs with sum as a prime number and less than n are: 6

  1. C++ এ জোড় এবং বিজোড় পণ্য সহ অর্ডার করা জোড়ার সংখ্যা গণনা করুন

  2. C++ এ সারির যোগফলের চেয়ে বেশি কলামের যোগফল আছে এমন জোড়ার সংখ্যা গণনা করুন

  3. C++ এ এর ​​থেকে কম সংখ্যার সমস্ত প্রাইম কোয়াড্রুপ্লেট প্রিন্ট করুন

  4. C++ এ Y এর চেয়ে কম সংখ্যা সহ সেটের ন্যূনতম সংখ্যা