输出一百以内的所有素数
时间: 2023-10-30 12:08:05 浏览: 69
以下是输出一百以内的所有素数的代码和解释:
```
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdbool.h>
bool isprime(int i) //判断是否是素数的自定义函数
{
int j;
for(j = 2; j <= sqrt(i); j++){ //for循环判断如果不是素数则返回false
if(i%j == 0){
return false;
}
}
return true; //如果是素数则返回true
}
int main() {
int i;
printf("打印100以内所有素数:\n");
for(i = 2;i <= 100; i++){ //for循环遍历一个一个判断,如果是素数那么就打印出来,遍历的数字范围能被修改,输出不同范围的素数
if(isprime(i)){
printf("%d ",i);
}
}
return 0;
}
```
相关问题
python 输出一百以内所有的素数
以下是一个输出一百以内所有素数的Python程序:
```python
for num in range(2, 101):
# 如果num大于1,并且num是质数,则打印它
if all(num % i != 0 for i in range(2, int(num ** 0.5) + 1)) and num > 1:
print(num)
```
解释一下:
- `range(2, 101)` 生成了一个范围,包括2-100。
- `all(num % i != 0 for i in range(2, int(num ** 0.5) + 1))` 用了一个生成器表达式,它会检查num是否能被2到sqrt(num)之间的任何数字整除。如果num是一个质数,所有这些检查都应该返回True,因此用all()函数来检查是否所有检查都返回True。
- `int(num ** 0.5) + 1` 这是求num的平方根,我们只需要检查到这个数字就可以了,因为如果num不是质数,它一定可以分解为两个小于等于它的数字的乘积,其中至少一个小于等于它的平方根。
输出结果:
```
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
```
如何输出一百以内的素数
输出一百以内的素数可以用质数筛法来实现。具体实现过程如下:
1. 定义一个数组`is_prime`,用来存储每个数是否为质数,初始时所有元素都设置为`true`。
2. 从数字2开始,遍历数组,如果当前数字是质数,则将它的倍数在数组中标记为非质数。
3. 遍历完数组后,所有标记为质数的数字就是一百以内的素数。
下面是一个C语言实现的例子:
```c
#include <stdio.h>
#include <stdbool.h>
int main() {
bool is_prime[101] = {true}; // 初始化数组,所有元素都是质数
int i, j;
for (i = 2; i <= 100; i++) {
if (is_prime[i]) { // 如果当前数字是质数
printf("%d ", i); // 输出当前数字
for (j = i * 2; j <= 100; j += i) { // 标记当前数字的倍数为非质数
is_prime[j] = false;
}
}
}
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`。