用 C++ 打印所有小于等于 N 的素数
在这个问题中,我们给定一个数字 N,需要打印所有小于等于 N 的素数。
让我们来看一个例子,以便更好地理解这个主题:
Input: 10 Output: 2 3 5 7
**素数**是一个只能被 1 和其自身整除的数字。例如:2, 3。
一个简单的做法是从 2 到 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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP