#9203: C語言出現WA...


ts870920 (No Name)

學校 : 臺中市立東山高級中學
編號 : 43292
來源 : [114.38.65.159]
最後登入時間 :
2015-10-27 20:32:25
a007. 判斷質數 | From: [114.38.77.164] | 發表日期 : 2014-09-20 10:45

我的程式碼

#include <stdio.h>
#include <math.h>

int main()
{
   int x,i,j;
   while((scanf("%d",&x))!=EOF)
   {
       if(x<2||x>2147483647)
        printf("錯誤");

       for(i=2;i<x;i++)
       {
           if(x%i!=0)
           printf("質數\n");
           else if(x%i==0)
           printf("非質數\n");

           break;
       }
   }

   return 0;
}

個人感覺沒什麼錯...但就出現WA了...該如何修改呢?據說這題要用排列的方式打!?那是什麼?? 

 
#9204: Re:C語言出現WA...


ts870920 (No Name)

學校 : 臺中市立東山高級中學
編號 : 43292
來源 : [114.38.65.159]
最後登入時間 :
2015-10-27 20:32:25
a007. 判斷質數 | From: [114.38.77.164] | 發表日期 : 2014-09-20 11:00

上面那個程式碼好像不能測1和2... 所以我用暴力法解 (還是不行阿=^=

 

#include <stdio.h>
#include <math.h>

int main()
{
   int x,i,j;
   while((scanf("%d",&x))!=EOF)
   {

       if(x<2)
        printf("非質數\n");
       else if(x==2)
       printf("質數\n");
       else{
       for(i=2;i<x;i++)
       {

           if(x%i!=0)
           printf("質數\n");
           else if(x%i==0)
           printf("非質數\n");

            break;
       }
       }
   }

   return 0;
}
 

 
ZeroJudge Forum