c语言 判断一个数是不是素数

#include<stdio.h>voidmain(){intn,s=0,i;printf("请输入一个数:");scanf("%d",&n);for(i=2;i<n;i... #include<stdio.h>
void main()
{
int n,s=0,i;
printf("请输入一个数:");
scanf("%d",&n);
for(i=2;i<n;i++)
s=n%i;
if(s==0)
printf("%d不是素数.",n);
else
printf("%d是素数.",n);
}

求大神指点
展开
 我来答
pen245760036
2013-07-29 · TA获得超过158个赞
知道答主
回答量:81
采纳率:0%
帮助的人:78.2万
展开全部
素数是只能被自己和1整除的数 这个算法 错在循环 因为最后一个s=n%(n-1) 肯定不为零 因此会被判断成素数
#include<stdio.h>
void main()
{
int n,s=0,i;
printf("请输入一个数:");
printf("\n");
scanf("%d",&n);
for(i=2;i<n;i++)
{ s=n%i;
if(s==0)
{printf("%d不是素数",n);
s=1;
break;
}
}
if(s==1)
printf("%d是素数",n);
getch();
}
追问
getch();  是起什么作用的
追答
不同编译环境问题  你可以忽略
luoguolong2660
2013-07-29 · TA获得超过157个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:228万
展开全部
首先是你的循环没加括号 作用范围有问题

再有就是你的逻辑问题 不能说余数不为0就不是素数,因为可能对其他数取余就是0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuwenchenglo
2013-07-29 · 超过27用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:76.1万
展开全部
括号的问题for循环后面有个大括号就可以了 素数貌似2到sqrt(本身)就可以了吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
俏丽还舒服的赤子H
高粉答主

2020-03-26 · 繁杂信息太多,你要学会辨别
知道答主
回答量:10万
采纳率:1%
帮助的人:4766万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-29
展开全部
#include<stdio.h>
void main()

 int n,s=0,i; 
 printf("请输入一个数:");
 scanf("%d",&n);
 for(i=2;i<n;i++) 
 {
  s=n%i;
  if(s==0) 
  {
   printf("%d不是素数.",n);
   break;
  }
  if(s!=0)
  {
   printf("%d是素数,",n);
   break;
  }
 }  
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式