एन नोड्स के साथ दिया गया और कार्य एक लिंक्ड सूची में सभी प्राइम नोड्स के उत्पाद को प्रिंट करना है। प्राइम नोड्स वे हैं जिनके पास उनके गिनती स्थानों के रूप में प्रमुख मान होंगे।
इनपुट
10 20 30 40 50
आउटपुट
4,00,000
स्पष्टीकरण -10 इंडेक्स वैल्यू 1 पर है जो नॉन-प्राइम है इसलिए इसे छोड़ दिया जाएगा। इंडेक्स वैल्यू 2 के साथ 20 पर जाना जो एक अभाज्य संख्या है इसलिए इस पर विचार किया जाएगा। इसी तरह, 40 और 50 प्रमुख सूचकांक स्थानों पर हैं।
उत्पाद -20*40*50 =4,00,000
ऊपर दिए गए आरेख में, लाल रंग के नोड प्राइम नोड्स का प्रतिनिधित्व करते हैं
नीचे इस्तेमाल किया गया तरीका इस प्रकार है
-
एक अस्थायी सूचक लें, मान लें, प्रकार के नोड का अस्थायी
-
इस अस्थायी सूचक को पहले नोड पर सेट करें जो कि हेड पॉइंटर द्वारा इंगित किया गया है
-
अस्थायी को अस्थायी → अगला ले जाएं और जांचें कि नोड एक प्राइम नोड है या एक गैर प्राइम नोड है। अगर नोड एक प्राइम नोड है
-
उत्पाद =उत्पाद * (अस्थायी → डेटा) सेट करें
-
अगर नोड अभाज्य नहीं है तो अगले नोड पर जाएँ
-
उत्पाद चर का अंतिम मान प्रिंट करें।
एल्गोरिदम
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