#7836: 為何出現WA line10


jonas7441 (ghost7441)

學校 : 崑山科技大學
編號 : 32228
來源 : [36.238.203.182]
最後登入時間 :
2016-08-22 10:26:59
a007. 判斷質數 | From: [114.39.21.194] | 發表日期 : 2013-06-07 17:17

以下是我的程式碼,為何會出現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 (小迷糊)

學校 : 不指定學校
編號 : 26613
來源 : [203.70.194.240]
最後登入時間 :
2013-07-29 09:30:29
a007. 判斷質數 | From: [203.70.194.240] | 發表日期 : 2013-06-07 17:40

以下是我的程式碼,為何會出現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的平方之後可能就出現錯誤
 
ZeroJudge Forum