|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- int i,num;
- _Bool flag = 1;
- printf("请输入一个数:");
- scanf("%d",&num);
-
- for ( i = 2; i < num / 2; i++){
- if(num % i ==0){
- flag = 0;
- }
- }
- if(flag){
- printf("%d是一个素数!\n",num);
- }
- else{
- printf("%d不是一个素数!\n",num);
- }
- return 0;
- }
复制代码
for 循环的条件 i < num / 2 应该改为 i <= num / 2,因为如果 num 是偶数且大于2,那么 num / 2 可能是一个因子,而你的循环条件会漏掉这个情况。
应该这样:- #include <stdio.h>
- int main() {
- int i, num;
- _Bool flag = 1;
- printf("请输入一个数:");
- scanf("%d", &num);
- if (num <= 1) {
- flag = 0;
- } else {
- for (i = 2; i <= num / 2; i++) {
- if (num % i == 0) {
- flag = 0;
- break;
- }
- }
- }
- if (flag) {
- printf("%d是一个素数!\n", num);
- } else {
- printf("%d不是一个素数!\n", num);
- }
- return 0;
- }
复制代码
|
|