C语言:函数prime判断一个不小于3的整数是否为素数,若是素数,返回1,否则返回0,主函数调用该函数并输出素数

此道题为程序改错题,程序如下:
2024-12-18 02:39:09
推荐回答(3个)
回答1:

#include 
#include 
int prime(int x)
{
  int i;
  for(i=2;i<=(int)sqrt(x);i++)
  {
    if(x%i == 0)
    {
      break ;
    }
  }
  if(i>(int)sqrt(x))
  {
   return 0;
  }
  else
  {
   return 1;
  }
}

int main(int argc,char *argv[])
{
  int m;
  while(1)
  {
    printf("m=");
    scanf("%d",&m);
    if(m<3)
    {
      printf("The End.\n");
      continue ;
    }
    if(prime(m) == 0)
      printf("%d is prime number.\n",m);
    else
      printf("%d is not prime number.\n",m);
    return 0;
  }
}

回答2:

在子函数中添加 标志位

根据标志位 来返回 1 或0

回答3:

判断条件错了
if (x%i!=0)换成if (x%i==0)