কম্পিউটার টিউটোরিয়াল

সি++-এ সিঙ্গলি লিংকড লিস্টের প্রাইম নোডগুলোর গুণফল বের করার প্রোগ্রাম


একটি সিঙ্গলি লিংকড লিস্ট দেওয়া আছে। প্রাইম ইন্ডেক্সে থাকা নোডগুলোর ডেটার গুণফল বের করতে হবে। (ইন্ডেক্স ১-বেসড)।

ইনপুট

10 20 30 40 50

আউটপুট

4,00,000

ব্যাখ্যা — ইন্ডেক্স ১ (নন-প্রাইম) বাদ, ইন্ডেক্স ২ (প্রাইম) → ২০, ইন্ডেক্স ৩ (প্রাইম) → ৩০, ইন্ডেক্স ৫ (প্রাইম) → ৫০। গুণফল = ২০ × ৩০ × ৫০ = ৩০,০০০। (নোট: মূল উদাহরণে ৪০ ও ৫০ ব্যবহার করা হয়েছে, তবে লজিক অনুযায়ী প্রাইম ইন্ডেক্স ২, ৩, ৫, ৭...)

পদ্ধতি

  • টেম্পোরারি পয়েন্টার `temp` দিয়ে লিস্ট ট্রভার্স করুন।
  • প্রতিটি নোডের ইন্ডেক্স প্রাইম কিনা চেক করুন।
  • প্রাইম হলে `product *= temp->data`।
  • শেষে প্রোডাক্ট প্রিন্ট করুন।

এলগরিদম

Start
Step 1 → নোড স্ট্রাকচার: data, next
Step 2 → push() ফাংশন: নোড ইনসার্ট
Step 3 → isPrime() ফাংশন: প্রাইম চেক
Step 4 → product() ফাংশন:
    int product = 1
    node* ptr = head
    while ptr != NULL
        if isPrime(ptr->data) product *= ptr->data
        ptr = ptr->next
    print product
Step 5 → main(): লিস্ট তৈরি, product() কল
Stop

উদাহরণ কোড

#include <bits/stdc++.h> 
using namespace std; 

struct node{
    int data;
    node* next;
};

void push(node** head_ref, int data){
    node* newnode = (node*)malloc(sizeof(struct node));
    newnode->data = data;
    newnode->next = (*head_ref);
    (*head_ref) = newnode;
}

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 += 6)
        if (data % i == 0 || data % (i + 2) == 0) return false;
    return true;
}

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 = " << 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. সি++-এ বাইনারি ট্রির সব নোডের গুণফল বের করার প্রোগ্রাম

  3. সি++-এ সার্কুলার লিংকড লিস্টের নোডগুলোর যোগফল (Sum)

  4. C++-এ সার্কুলার লিঙ্কড লিস্টে নোড গণনা