使用指针的方法求100以内的素数
时间: 2023-08-06 14:02:31 浏览: 51
可以使用埃氏筛法(Sieve of Eratosthenes)来求解100以内的素数。具体的做法是:创建一个大小为100的布尔数组,将数组中所有值初始化为true,然后从2开始遍历数组,将所有能被2整除的数标记为false,再从3开始遍历数组,将所有能被3整除的数标记为false,以此类推,直到遍历到sqrt(100)为止。最后,数组中为true的下标就是100以内的素数。
下面是使用指针的C语言代码实现:
```
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
int main() {
bool* isPrime = (bool*)malloc(sizeof(bool) * 100);
int i, j;
for (i = 2; i < 100; i++) {
*(isPrime + i) = true;
}
for (i = 2; i <= sqrt(100); i++) {
if (*(isPrime + i)) {
for (j = i * i; j < 100; j += i) {
*(isPrime + j) = false;
}
}
}
for (i = 2; i < 100; i++) {
if (*(isPrime + i)) {
printf("%d ", i);
}
}
free(isPrime);
return 0;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)