求问错误

—happy@ 2021-04-07 04:17:32
#include<stdio.h> int main() { int x,isPrime=1,i; scanf("%d",&x); for(i=2;i<x;i++) { if(x%i==0) { isPrime=0; break; } } if(isPrime==0) { printf("是素数"); } else { printf("不是素数"); } return 0; } 可以帮我看下哪块错了嘛,实在是不会了
...全文
147 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
自信男孩 2021-04-08
  • 打赏
  • 举报
回复
#include<stdio.h>
int main()
{
#if 1
int x, i;
scanf("%d",&x);

if (x < 2) {
printf("不是素数");
return 0;
}

for (i = 2; i < x; i++) {
if (x % i == 0)
break;
}
if (i >= x) {
printf("是素数");
} else {
printf("不是素数");
}
#else
int x,isPrime=1,i;

scanf("%d",&x);

if (x < 2) {
printf("不是素数");
return 0;
}

for(i=2;i<x;i++)
{
if(x%i==0)
{
isPrime=0;
break;
}
}
if(isPrime==0)
{
//printf("是素数");
printf("不是素数");
}
else
{
//printf("不是素数");
printf("是素数");
}
#endif
return 0;
}

供参考~
qzjhjxj 2021-04-07
  • 打赏
  • 举报
回复
供参考:
#include<stdio.h>
int main()
{
   int x,isPrime=1,i;
   scanf("%d",&x);
   if(x<=1)isPrime=0;//增加对1的判断
   for(i=2;i<x;i++)
   {
     if(x%i==0)
     {
       isPrime=0;
       break;
     }
   }
   if(isPrime!=0)//if(isPrime==0)这里反了
   {
     printf("是素数");
   }
   else
   {
     printf("不是素数");
   }
   
   return 0;
}
一颗白面馒头 2021-04-07
  • 打赏
  • 举报
回复
其实你就是把自己设置的标志位搞反了,isPrime等于0的时候不是素数

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧