Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับจำนวนเฉพาะในอาร์เรย์ใน C++


เราได้รับอาร์เรย์ของตัวเลข เป้าหมายคือการหาจำนวนเฉพาะในอาร์เรย์นั้น

จำนวนเฉพาะคือจำนวนที่หารด้วย 1 ลงตัวและจำนวนเฉพาะ มีเพียงสองปัจจัยเท่านั้น เราจะตรวจสอบว่าตัวเลขเป็นจำนวนเฉพาะตั้งแต่องค์ประกอบแรกจนถึงตัวสุดท้ายหรือไม่ และเพิ่มจำนวนเฉพาะที่พบจนถึงตอนนี้

ในการตรวจสอบว่าตัวเลข N เป็นจำนวนเฉพาะ ให้ตรวจสอบว่าตัวเลขระหว่างช่วง [2 ถึง N/2] หาร N ทั้งหมดหรือไม่ ถ้าใช่ แสดงว่าไม่ใช่จำนวนเฉพาะ มิฉะนั้นจะเป็นไพรม์

มาทำความเข้าใจกับตัวอย่างกัน

ป้อนข้อมูล − arr[]={ 1,2,3,4,5,6,7,8,9 }

ผลผลิต − จำนวนของจำนวนเฉพาะ − 4

คำอธิบาย − 2,3,5,7 เป็นจำนวนเฉพาะและ 1,4,6,8,9 ไม่ใช่จำนวนเฉพาะ

ป้อนข้อมูล − arr[]={ 11,12,4,61,23 }

ผลผลิต − จำนวนของจำนวนเฉพาะ − 3

คำอธิบาย − ในที่นี้ 11,61,23 เป็นจำนวนเฉพาะและ 12,4 ไม่ใช่จำนวนเฉพาะ

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • เราใช้อาร์เรย์จำนวนเต็ม arr[] ที่มีตัวเลขสุ่ม

  • ฟังก์ชัน checkPrime(int num) ตรวจสอบว่าจำนวนที่ส่งผ่านเป็นจำนวนเฉพาะหรือไม่ หากเป็นจำนวนเฉพาะ จะส่งกลับ 1 มิฉะนั้นจะคืนค่า 0

  • หาก num เป็น <=1 แสดงว่าไม่ใช่จำนวนเฉพาะ ให้คืนค่า 0

  • ตอนนี้เริ่มจาก 2 ถึง num/2 หากจำนวนใดหาร num ได้จนหมด ( num%i==0) แล้ว num จะเป็น non-prime ให้คืนค่า 0

  • ผลตอบแทนอื่น 1.

  • isprime ตัวแปรบอกว่าตัวเลขเป็นจำนวนเฉพาะหรือไม่ ( 1 หมายถึงจำนวนเฉพาะ )

  • จำนวนตัวแปรเก็บจำนวนเฉพาะใน arr[]

  • ภายในหลักสำรวจทั้งอาร์เรย์และส่งผ่านแต่ละองค์ประกอบ arr[i] เพื่อ checkPrime( arr[i] ) หากผลลัพธ์เป็น 1 ( isprime==1 ) ให้นับจำนวนที่เพิ่มขึ้น

  • เมื่อสิ้นสุดการนับคือจำนวนเฉพาะใน arr[]

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
// Function to find if number is prime
int checkPrime(int num){
    if (num <= 1)
      { return 0; }
   // Check from 2 to half of arr[i]
   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;
   int 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