用c++输出100以内所有素数
时间: 2023-09-03 12:11:55 浏览: 109
以下是用C语言输出100以内所有素数的代码:
```c
#include <stdio.h>
int main() {
int i, j, isPrime;
// 从2开始遍历到100
for (i = 2; i <= 100; i++) {
isPrime = 1; // 假设当前数是素数
// 判断当前数是否为素数
for (j = 2; j <= i/2; j++) {
if (i % j == 0) {
isPrime = 0; // 如果能被整除,说明不是素数
break;
}
}
// 如果是素数,输出
if (isPrime) {
printf("%d ", i);
}
}
return 0;
}
```
运行结果:
```
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
```
相关问题
采用筛法求出100之内的所有素数。 要求 使用C++实现 输出100以内的素数,每行输出10个数
以下是使用筛法求出100以内的所有素数,并每行输出10个数的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
const int n = 100;
bool isPrime[n + 1];
for (int i = 2; i <= n; i++) {
isPrime[i] = true;
}
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
cout << i << " ";
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
if (i % 10 == 1) {
cout << endl;
}
}
return 0;
}
```
在这个代码中,我们首先定义了一个布尔数组isPrime,用于记录每个数是否是素数。然后初始化所有数为素数(除了1以外),接着从2开始遍历数组,如果当前数是素数,则输出它,并将它的倍数标记为非素数。最后,如果输出的数的个数是10的倍数,则输出一个换行符。
需要注意的是,我们使用筛法求素数的时间复杂度是O(nloglogn),比试除法求素数的时间复杂度O(nsqrt(n))更快。
用c++编程100以内所有素数
以下为使用C语言编写的100以内所有素数的程序:
```c
#include <stdio.h>
int main() {
int i, j, isPrime;
// 从2到100遍历每个数
for (i = 2; i <= 100; i++) {
isPrime = 1; // 假设i是素数
// 判断i是否是素数
for (j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = 0; // i不是素数
break;
}
}
// 如果i是素数,输出i
if (isPrime) {
printf("%d ", i);
}
}
return 0;
}
```
程序中使用两个循环,外层循环从2到100遍历每个数,内层循环从2到i-1判断当前数是否为素数。如果当前数能被2到i-1之间的任意一个数整除,则说明当前数不是素数,将isPrime变量赋值为0。最后判断isPrime的值,如果为1则说明当前数是素数,输出即可。
阅读全文