c语言:设置一个函数判断是不是素数,是素数返回1,不是返回0
时间: 2024-03-02 09:52:32 浏览: 34
以下是判断素数的C语言函数实现:
```c
int isPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; ++i) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
```
解释一下:
判断素数的方法很多,但是最常见的是遍历2到sqrt(n)之间的所有数字,如果其中存在能被n整除的数,那么n就不是素数,否则n是素数。
在代码中,首先判断n是否小于等于1,因为小于等于1的数都不是素数,如果是,直接返回0。
然后从2开始遍历到sqrt(n),依次判断n是否能被i整除,如果能整除,说明n不是素数,直接返回0。
如果遍历完了所有可能的i,都没有返回0,那么n就是素数,返回1。
相关问题
用c语言编写一个函数判断是不是素数,是的话返回1,不是的话返回0
以下是用 C 语言编写的判断素数的函数:
```c
#include <stdio.h>
int is_prime(int num) {
if (num < 2) { // 小于 2 的数都不是素数
return 0;
}
for (int i = 2; i * i <= num; i++) { // 从 2 到 sqrt(num) 遍历
if (num % i == 0) { // 若 num 能被 i 整除,则 num 不是素数
return 0;
}
}
return 1; // num 不被 2~sqrt(num) 中任何一个数整除,则 num 是素数
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
if (is_prime(num)) {
printf("%d 是素数\n", num);
} else {
printf("%d 不是素数\n", num);
}
return 0;
}
```
该函数接受一个整数作为参数,返回该整数是否为素数的布尔值。首先判断参数是否小于 2,小于 2 的数都不是素数,直接返回 0;否则从 2 到该整数的平方根遍历,若该整数能被任何一个小于它自身的数整除,则说明该整数不是素数,返回 0;否则该整数是素数,返回 1。
C语言:定义一个素数的函数,当n为素数时返回1否则返回0
下面是一个判断素数的C语言函数,如果n是素数,返回1,否则返回0。
```c
int isPrime(int n) {
if (n <= 1) return 0;
if (n == 2) return 1;
if (n % 2 == 0) return 0;
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0) return 0;
}
return 1;
}
```
该函数的实现如下:
1. 如果n小于等于1,则不是素数,返回0。
2. 如果n等于2,则是素数,返回1。
3. 如果n为偶数,则不是素数,返回0。
4. 遍历从3开始的奇数i,如果n能被i整除,则不是素数,返回0。
5. 如果上述条件都不满足,则n是素数,返回1。