কম্পিউটার

C++ এ এককভাবে লিঙ্কযুক্ত তালিকায় সমস্ত প্রধান নোডের পণ্য


n নোড দিয়ে দেওয়া হয়েছে এবং কাজটি হল সমস্ত প্রাইম নোডের পণ্য একটি লিঙ্ক করা তালিকায় প্রিন্ট করা। প্রাইম নোড হল যেগুলির গণনার অবস্থান হিসাবে প্রাইম মান থাকবে৷

ইনপুট

10 20 30 40 50

আউটপুট

4,00,000

ব্যাখ্যা − 10 সূচক মান 1 এ রয়েছে যা নন-প্রাইম তাই এটি বাদ দেওয়া হবে। সূচক মান 2 সহ 20 এ সরানো যা একটি মৌলিক সংখ্যা তাই এটি বিবেচনা করা হবে। একইভাবে, 40 এবং 50 প্রধান সূচক অবস্থানে রয়েছে।

পণ্য − 20*40*50 =4,00,000

C++ এ এককভাবে লিঙ্কযুক্ত তালিকায় সমস্ত প্রধান নোডের পণ্য

উপরের চিত্রে, লাল রঙের নোডগুলি প্রধান নোডগুলিকে প্রতিনিধিত্ব করে

নিচে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

  • একটি অস্থায়ী পয়েন্টার নিন, ধরা যাক, টেম্প অফ নোড

  • এই টেম্প পয়েন্টারটিকে প্রথম নোডে সেট করুন যা হেড পয়েন্টার দ্বারা নির্দেশিত হয়

  • টেম্পকে টেম্প→পরের দিকে সরান এবং নোডটি প্রাইম নোড না নন প্রাইম নোড কিনা তা পরীক্ষা করুন। যদি নোড একটি প্রাইম নোড হয়

  • পণ্য =পণ্য*(টেম্প→ডেটা)

    সেট করুন
  • নোড প্রাইম না হলে পরবর্তী নোডে চলে যান

  • পণ্য ভেরিয়েবলের চূড়ান্ত মান প্রিন্ট করুন।

অ্যালগরিদম

Start
Step 1 → create structure of a node to insert into a list
   struct node
      int data;
      node* next
   End
Step 2 → declare function to insert a node in a list
   void push(node** head_ref, int data)
      Set node* newnode = (node*)malloc(sizeof(struct node))
      Set newnode→data = data
      Set newnode→next = (*head_ref)
      Set (*head_ref) = newnode
   End
Step 3 → Declare a function to check for prime or not
   bool isPrime(int data)
      IF data <= 1
         return false
      End
      IF data <= 3
         return true
      End
      IF data % 2 = 0 || data % 3 = 0
         return false
      Loop For int i = 5 and i * i <= data and i = i + 6
         IFdata % i = 0 || data % (i + 2) = 0
            return false
         End
      End
      return true
Step 4→ declare a function to calculate product
   void product(node* head_ref)
      set int product = 1
      set node* ptr = head_ref
      While ptr != NULL
         IF (isPrime(ptr→data))
            Set product *= ptr→data
         End
         Set ptr = ptr→next
      End
      Print product
Step 5 → In main()
   Declare node* head = NULL
   Call push(&head, 10)
   Call push(&head, 2)
   Call product(head)
Stop

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
//structure of a node
struct node{
   int data;
   node* next;
};
//function to insert a node
void push(node** head_ref, int data){
   node* newnode = (node*)malloc(sizeof(struct node));
   newnode→data = data;
   newnode→next = (*head_ref);
   (*head_ref) = newnode;
}
// Function to check if a number is prime
bool isPrime(int data){
   if (data <= 1)
      return false;
   if (data <= 3)
      return true;
   if (data % 2 == 0 || data % 3 == 0)
      return false;
   for (int i = 5; i * i <= data; i = i + 6)
      if (data % i == 0 || data % (i + 2) == 0)
         return false;
   return true;
}
//function to find the product
void product(node* head_ref){
   int product = 1;
   node* ptr = head_ref;
   while (ptr != NULL){
      if (isPrime(ptr→data)){
         product *= ptr→data;
      }
      ptr = ptr→next;
   }
   cout << "Product of all the prime nodes of a linked list = " << product;
}
int main(){
   node* head = NULL;
   push(&head, 10);
   push(&head, 2);
   push(&head, 7);
   push(&head, 6);
   push(&head, 85);
   product(head);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Product of all the prime nodes of a linked list = 14

  1. C++ এ একটি অ্যারেতে সমস্ত মৌলিক সংখ্যার গুণফল

  2. C++ এ একটি বাইনারি ট্রিতে সমস্ত নোডের পণ্য

  3. C++ এ সার্কুলার লিঙ্কড লিস্টের নোডের সমষ্টি

  4. C++ এ সার্কুলার লিঙ্ক তালিকায় নোড গণনা করুন