用数组 ,筛法求素数,输入a和b求a与b之间的素数,我的程序为什么不行!新手求指教,谢谢

#include"stdio.h"
int main()
{
 int a,b,i,j,t=0,s1[10000];
 scanf("%d%d",&a,&b);
 for(i=a;i<=b;i++)
 {     
  for(j=2;j<i;j++)
  if(i%j==0)break;
  if(j>i+1) s1[t]=i;t++;
 }printf("%d",s1[t]);
}



qq_LeeMeYang_0
浏览 1865回答 3
3回答

望远

if(j==i)//当j==i时才表示是素数。 {     s1[t]=i;     t++;//这两条指令必须同时执行,注意if语句作用范围。  }printf("%d",s1[t]);//这里输出结果一定是0,数组下标是0.....t-1 可以统计完所有素数后用for循环打印输出 for(i=0;i<t;i++) {     printf("%d ",s1[i]); }

慕瓜4807886

最后的条件应该是j+1==i,这个时候才能判断从2到i-1没有一个能被i整除
打开App,查看更多内容
随时随地看视频慕课网APP