c语言判断质数用while和do while分别写
时间: 2024-10-07 19:01:33 浏览: 29
c语言判断是否素数程序代码
在C语言中,判断一个数是否为质数可以使用while和do-while循环结构。这里我会分别给出这两种情况的代码示例。
1. 使用`while`循环:
```c
#include <stdio.h>
int is_prime(int num) {
int i = 2;
while (i * i <= num) { // 只需检查到num开平方即可,因为大于sqrt(num)的因子必定有对应小于它的因子
if (num % i == 0) {
return 0; // 如果能整除,不是质数
}
i++;
}
return num > 1; // 如果没有找到因子,除了1以外,它就是质数
}
int main() {
int num;
printf("请输入一个数字:");
scanf("%d", &num);
if (is_prime(num)) {
printf("%d是质数\n", num);
} else {
printf("%d不是质数\n", num);
}
return 0;
}
```
2. 使用`do-while`循环:
```c
#include <stdio.h>
int is_prime(int num) {
int i = 2;
do {
if (num % i == 0) {
return 0; // 能整除说明不是质数
}
i++;
} while (i * i <= num); // 同样只检查到num开平方
return num > 1; // 检查结束后,如果没有找到因子,返回true
}
int main() {
int num;
printf("请输入一个数字:");
scanf("%d", &num);
if (is_prime(num)) {
printf("%d是质数\n", num);
} else {
printf("%d不是质数\n", num);
}
return 0;
}
```
在这两个例子中,核心逻辑都是检查一个数是否能被从2到其平方根之间的任意整数整除,如果找到就不是质数,反之则是质数。
阅读全文