একটি সংখ্যার অ্যারে দেওয়া আছে। লক্ষ্য হল সেই অ্যারেতে কতগুলো মৌলিক সংখ্যা (prime number) আছে তা বের করা।
মৌলিক সংখ্যা হল যেটি শুধু ১ এবং নিজের দ্বারা বিভাজ্য। এর শুধু দুটি গুণনখণ্ড থাকে। প্রতিটি উপাদান চেক করা হয় মৌলিক কিনা।
N মৌলিক কিনা চেক করতে: 2 থেকে N/2 পর্যন্ত যেকোনো সংখ্যা N কে পুরোপুরি ভাগ করলে (N%i==0) অ-মৌলিক। অন্যথায় মৌলিক।
উদাহরণ
ইনপুট: arr[] = { 1,2,3,4,5,6,7,8,9 }
আউটপুট: মৌলিক সংখ্যার গণনা: ৪
ব্যাখ্যা: ২, ৩, ৫, ৭ মৌলিক। ১, ৪, ৬, ৮, ৯ অ-মৌলিক।
ইনপুট: arr[] = { 11,12,4,61,23 }
আউটপুট: মৌলিক সংখ্যার গণনা: ৩
ব্যাখ্যা: ১১, ৬১, ২৩ মৌলিক। ১২, ৪ অ-মৌলিক।
অ্যাপ্রোচ
- ইন্টিজার অ্যারে arr[] নেওয়া হয়।
checkPrime(int num)ফাংশন num মৌলিক কিনা চেক করে। মৌলিক হলে ১, নয় হলে ০ রিটার্ন।- num <= 1 হলে অ-মৌলিক, ০ রিটার্ন।
- for লুপে j=2 থেকে num/2 পর্যন্ত: num%j==0 হলে ০ রিটার্ন।
- এলস ১ রিটার্ন।
- isprime ভেরিয়েবলে ফলাফল। count-এ মৌলিক সংখ্যা সংরক্ষণ।
- মেইন-এ অ্যারে ট্রাভার্স করে প্রতিটি উপাদান checkPrime()-এ পাস করা হয়। isprime==1 হলে count++।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int checkPrime(int num) {
if (num <= 1) return 0;
for (int j = 2; j <= num/2; j++) {
if (num % j == 0) return 0;
}
return 1;
}
int main() {
int arr[] = { 1,3,5,4,8,13,11 };
int n = 7;
int count = 0, isprime = 0;
for (int i = 0; i < n; i++) {
isprime = checkPrime(arr[i]);
if (isprime == 1) count++;
}
cout << "Count of number of primes in array : " << count;
return 0;
}
আউটপুট
Count of number of primes in array : 4