#9624: C語言判斷質數錯誤不知在哪


jason569810 (Smile_Jie)


我是用C語言
在測試執行中AC
但解題時 WA
可以拜託大家跟我說錯在哪嗎~~ 感謝了!! >< 
 
#include <stdio.h>

int main(){
int a;
while(scanf("%d",&a)!=EOF){
   if(a<2 || a>2147483647){
        printf("錯誤\n");
    }
        else if(a==2 || a==3 || a==5 || a==7){
printf("質數\n"); 
}
else if(a%2==0 || a%3==0 || a%5==0 || a%7==0){
printf("非質數\n");
    }
      else{
printf("質數\n");
    }
    
}
return 0;
}

#9748: Re:C語言判斷質數錯誤不知在哪


s441216545 (yongb)


我是用C語言
在測試執行中AC
但解題時 WA
可以拜託大家跟我說錯在哪嗎~~ 感謝了!! >< 
 
#include

int main(){
int a;
while(scanf("%d",&a)!=EOF){
   if(a<2 || a>2147483647){
        printf("錯誤\n");
    }
        else if(a==2 || a==3 || a==5 || a==7){
printf("質數\n"); 
}
else if(a%2==0 || a%3==0 || a%5==0 || a%7==0){
printf("非質數\n");
    }
      else{
printf("質數\n");
    }
    
}
return 0;
}

||改&&



#9765: Re:C語言判斷質數錯誤不知在哪


d2513850 (林勇智)


我是用C語言
在測試執行中AC
但解題時 WA
可以拜託大家跟我說錯在哪嗎~~ 感謝了!! >< 
 
#include

int main(){
int a;
while(scanf("%d",&a)!=EOF){
   if(a<2 || a>2147483647){
        printf("錯誤\n");
    }
        else if(a==2 || a==3 || a==5 || a==7){
printf("質數\n"); 
}
else if(a%2==0 || a%3==0 || a%5==0 || a%7==0){
printf("非質數\n");
    }
      else{
printf("質數\n");
    }
    
}
return 0;
}

應該在main(void)引入創建的函數"is_prime",程式碼如下
int is_prime(int x) {     int i;       if(x <= 1)/*1不是質數,且不考慮負整數與0,故輸入x<=1時輸出為假*/     {         return 0;     }       for(i = 2; i * i <= x; ++ i)     {         if(x % i == 0)/*若整除時輸出為假,否則輸出為真*/         {             return 0;         }     }       return 1; }