确定PRIME数字

时间:2016-03-01 14:24:37

标签: c

1& 0是素数?因为当我输入1& 0它说它是PRIME

#include <stdio.h>

int main(){

  int num, i,y = 0;

  printf("Enter a Number: ");
  scanf("%d",&num);

  for(i = 2; i <= num /2; ++i){

      if(num % i == 0){
          y=1;    
      }
  }

  printf("the number %d is a ",num);

  if (y == 0){
      printf("(PRIME)");
  }
  if(num % 2 == 0){
      printf("(EVEN)");

  }else
      printf("(ODD)");

  printf(" Number.");


}

任何人都可以帮我处理我的代码

1 个答案:

答案 0 :(得分:0)

不,0和1都不被认为是素数,也就是说,最低素数是2.您需要将代码更改为,例如:

if (y == 0 && n >= 2)

这包括0和1以及负整数(感谢@MikeCAT)