用C语言编写从键盘输入一个大于3的整数,并判断该数是否为素数。若是,则输出YES;否则输出NO。并运用while语句
时间: 2024-02-15 09:04:15 浏览: 83
好的,以下是代码实现:
```c
#include <stdio.h>
int main() {
int num, i = 2, flag = 1;
printf("请输入一个大于3的整数:");
scanf("%d", &num);
while (i <= num / 2) {
if (num % i == 0) {
flag = 0;
break;
}
i++;
}
if (flag == 1) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
解释一下代码的思路:
1. 首先从键盘输入一个大于3的整数,存储在变量`num`中。
2. 然后使用`while`循环从2开始,依次判断`num`是否能被`i`整除(这里只需要判断到`num/2`即可,因为大于`num/2`的数肯定不是`num`的因子)。
3. 如果`num`能被`i`整除,说明`num`不是素数,将`flag`标记为0,并跳出循环。
4. 最后根据`flag`的值输出结果,如果为1则是素数,输出"YES",否则输出"NO"。
相关问题
使用c语言,从键盘输入一个大于等于2的整数,判断其是否为素数。如果是素数,输出“YES”;否则,输出“NO”。
在C语言中,你可以通过以下步骤来实现这个功能:
1. 首先,你需要编写一个函数`isPrime(int n)`,它接收一个整数n作为参数,检查它是否为素数。素数是只有两个正因子(1和自身)的大于1的自然数。
```c
#include <stdbool.h>
bool isPrime(int n) {
if (n <= 1) return false; // 小于等于1的不是素数
for (int i = 2; i * i <= n; i++) { // 只需要检查到根号n
if (n % i == 0) return false; // 如果有除数,说明不是素数
}
return true;
}
```
2. 接下来,在主程序里,你可以从用户那里获取输入并调用`isPrime`函数,然后输出结果。
```c
int main() {
int num;
printf("请输入一个大于等于2的整数:");
scanf("%d", &num);
if (isPrime(num)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
当你运行这个程序时,用户会看到提示并输入一个数字。程序会检查输入的数字是否为素数,并相应地输出"YES"或"NO"。
使用c语言写输入一个正整数m,判断该数是不是素数。是素数输出yes,不是素数输出no
可以使用以下代码:int i;
int flag=0;
if (m<=1)
{
printf("no");
return 0;
}
for(i=2; i<=sqrt(m); i++)
{
if(m%i==0)
{
flag=1;
break;
}
}
if(flag==0)
printf("yes");
else
printf("no");
阅读全文