#7836: 為何出現WA line10


jonas7441 (ghost7441)


以下是我的程式碼,為何會出現WA
它說: 
WA (line:10)
答案不正確
您的答案為: 質數 
正確答案為: 非質數 
為何這樣? compile有過丫 且只有8個迴圈,測試也正確 也已排除 0 1 還有負的  
 
 
 
#include<stdio.h>
main(){    
int x,i;
int a[]={2,3,5,7,11,13,17,19};
   
  while(scanf("%d",&x)!=EOF)
   {
    
    int ans=0;    
    for(i=0;i<=7;i++)
     {
      if(x<2||x>2147483647)
       {
        ans++;
        break;
       }       
       else if(x==2 || x==3 || x==5|| x==7 || x==11 || x==13|| x==17 || x==19)
        {break;}         
       else if(x%a[i]!=0) 
         {continue;}
        else 
         {
          ans++;
          break;         
         }       
     }
     if(ans!=0) printf("非質數\n");  
     else printf("質數\n");
      
   }
return 0;
}
#7838: Re:為何出現WA line10


akira0331 (小迷糊)


以下是我的程式碼,為何會出現WA
它說: 
WA (line:10)
答案不正確
您的答案為: 質數 
正確答案為: 非質數 
為何這樣? compile有過丫 且只有8個迴圈,測試也正確 也已排除 0 1 還有負的  
 
 
 
#include
main(){    
int x,i;
int a[]={2,3,5,7,11,13,17,19};
   
  while(scanf("%d",&x)!=EOF)
   {
    
    int ans=0;    
    for(i=0;i<=7;i++)
     {
      if(x<2||x>2147483647)
       {
        ans++;
        break;
       }       
       else if(x==2 || x==3 || x==5|| x==7 || x==11 || x==13|| x==17 || x==19)
        {break;}         
       else if(x%a[i]!=0) 
         {continue;}
        else 
         {
          ans++;
          break;         
         }       
     }
     if(ans!=0) printf("非質數\n");  
     else printf("質數\n");
      
   }
return 0;
}

你試一下23跟529就知道那邊有錯,你的質因數只到19,大於19的平方之後可能就出現錯誤