Computer >> Máy Tính >  >> Lập trình >> lập trình C

Super Prime trong lập trình c

Số siêu nguyên tố là số chiếm vị trí số nguyên tố trong dãy tất cả các số nguyên tố. còn được gọi là số nguyên tố bậc cao, Những số này chiếm vị trí trong dãy số nguyên tố ngang với số Nguyên tố. một số siêu nguyên tố là 3,5,11,1 7…

Ví dụ, chúng ta hãy tìm tất cả các số siêu nguyên tố nhỏ hơn 13 -

Đầu vào

13

Đầu ra

3, 5, 11.

Giải thích - Để tìm số siêu nguyên tố nhỏ hơn 13, chúng ta sẽ tìm tất cả các số nguyên tố nhỏ hơn 13. Vì vậy, hiển thị tất cả các số nguyên tố nhỏ hơn 13 là 2,3,5,7,11,13. Bây giờ, 2 là một số nguyên tố, vì vậy chúng ta sẽ coi số nguyên tố ở vị trí là một số siêu nguyên tố. điều này có nghĩa là ba là một số nguyên tố. Tương tự, 5 ở vị trí 3 và 11 ở vị trí 5 là các số siêu nguyên tố.

để tìm tất cả các số siêu nguyên tố nhỏ hơn một số nguyên tố đã cho, trước tiên sẽ tìm tất cả các số nguyên tố nhỏ hơn số đó và Lưu trữ sau đó trong một mảng. từ mảng này sẽ chỉ in ra những số có vị trí bằng bất kỳ số nguyên tố nào. Ví dụ, số nguyên tố ở vị trí thứ 2, 3, 5, 7, 11, 13…. được xem xét.

Ví dụ

#include<iostream>
using namespace std;
bool SieveOfEratosthenes(int n, bool isPrime[]) {
   isPrime[0] = isPrime[1] = false;
   for (int i=2; i<=n; i++)
      isPrime[i] = true;
   for (int p=2; p*p<=n; p++) {
      if (isPrime[p] == true) {
         for (int i=p*2; i<=n; i += p)
            isPrime[i] = false;
      }
   }
}
void superPrimes(int n) {
   bool isPrime[n+1];
   SieveOfEratosthenes(n, isPrime);
   int primes[n+1], j = 0;
   for (int p=2; p<=n; p++)
      if (isPrime[p])
   primes[j++] = p;
   for (int k=0; k<j; k++)
      if (isPrime[k+1])
   cout << primes[k] << " ";
}
int main() {
   int n = 343;
   cout << "Super-Primes less than "<< n << " are :"<<endl;
   superPrimes(n);
   return 0;
}

Đầu ra

Super-Primes less than 343 are :
3 5 11 17 31 41 59 67 83 109 127 157 179 191 211 241 277 283 331