利用C语言函数判断们是否为素数,若是返回1,否则返回0.三种解法
时间: 2023-11-28 12:49:14 浏览: 62
解法一:暴力枚举
```c
int is_prime(int n) {
if (n < 2) return 0;
for (int i = 2; i < n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
```
解法二:优化枚举
```c
int is_prime(int n) {
if (n < 2) return 0;
if (n == 2 || n == 3) return 1;
if (n % 6 != 1 && n % 6 != 5) return 0;
for (int i = 5; i * i <= n; i += 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return 0;
}
}
return 1;
}
```
解法三:埃氏筛法
```c
int is_prime(int n) {
if (n < 2) return 0;
int prime[n + 1];
memset(prime, 1, sizeof(prime));
prime[0] = prime[1] = 0;
for (int i = 2; i <= n; i++) {
if (prime[i]) {
for (int j = i * 2; j <= n; j += i) {
prime[j] = 0;
}
}
}
return prime[n];
}
```
阅读全文