判断一个数是不是素数c
时间: 2024-06-13 07:06:52 浏览: 88
以下是两种判断一个数是否为素数的方法:
1. 朴素的方法:从2到n-1遍历每个数,判断是否能整除n,如果能则n不是素数,否则n是素数。
```c
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i < n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n = 17;
if (isPrime(n)) {
printf("%d is a prime number.\n", n);
} else {
printf("%d is not a prime number.\n", n);
}
return 0;
}
```
输出:17 is a prime number.
2. 更快的方法:判断n是否整除大于1而小于sqrt(n)中的任何一个数,如果有则n不是素数,否则n是素数。
```c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
bool isPrime(int n) {
if (n <= 1) {
return false;
}
int sqrt_n = sqrt(n);
for (int i = 2; i <= sqrt_n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n = 17;
if (isPrime(n)) {
printf("%d is a prime number.\n", n);
} else {
printf("%d is not a prime number.\n", n);
}
return 0;
}
```
输出:17 is a prime number.