C语言编程:输出m到n之间的素数;求指错误

2024年11月19日 04:47
有2个网友回答
网友(1):

把if (j>=i/2) 的等号去掉,因为最后会执行i++,所以,退出内层for循环应该是j = i/2 + 1才对,代码如下,望采纳!:

#include 
int main ( )
{ int m,n,i,j;
  scanf("%d%d",&m,&n);
  for(i=m;i<=n;i=i+1)
  {for(j=2;j<=i/2;j++)
   if (i%j==0) break;
   if (j>i/2)
 printf("%d ",i) ;
  }
  printf("\n");
  return 0;
}

截图:

网友(2):

#include 
int main ( )
{ int m,n,i,j;
  scanf("%d%d",&m,&n);
  for(i=m;i<=n;i=i+1) 
  {for(j=2;j<=i/2;j++) 
   if (i%j==0) break; 
   if (j>i/2) //不要等于号
 printf("%d ",i) ;
  }
  printf("\n");
  return 0;
}