在C ++中打印所有小于或等于N的素数

在这个问题中,给我们一个数字N,我们必须打印所有小于或等于N的质数。

让我们举个例子来更好地理解这个话题-

Input: 10

Output: 2 3 5 7

质数是一个只能除以1的数字。示例:2、3。

一种简单的方法是从2迭代到N,然后将其除以N。如果数字不可分割,则为质数。打印号码。这样做直到数字等于N。这种方法效率不高。

一种更有效的方法是通过从2迭代到√N来检查素数。

示例

#include <bits/stdc++.h>

using namespace std;

bool isPrimeNumber(int n){

   if (n <= 1)

      return false;

   if (n <= 3)

      return true;

   if (n % 2 == 0 || n % 3 == 0)

      return false;

   for (int i = 5; i * i <= n; i = i + 6)

      if (n % i == 0 || n % (i + 2) == 0)

         return false;

   return true;

}

void printPrime(int n){

   for (int i = 2; i <= n; i++) {

      if (isPrimeNumber(i))

         cout<<i<<" ";

      }

   }

int main(){

   int n = 41;

   cout<<"Prime numbers less than or equal to "<<n<<" are \n";

   printPrime(n);

}

输出结果

小于或等于41的素数是

2 3 5 7 11 13 17 19 23 29 31 37 41

以上是 在C ++中打印所有小于或等于N的素数 的全部内容, 来源链接: utcz.com/z/357494.html

回到顶部