#2040: 為何會WA??


genius0615 (長長長長長長長長長長長長長長長長整數)

學校 : 臺北市立成功高級中學
編號 : 4683
來源 : [140.113.209.197]
最後登入時間 :
2015-07-21 23:28:34
d121. 00583 - Prime Factors -- UVa583 | From: [61.228.40.176] | 發表日期 : 2009-05-31 21:37

各位大大好,以下是我的程式碼。

不知為何,在第241行中,本人自己電腦中答案正確,但是在測資中卻莫名其妙多了個"x 1",請各位大大幫忙解決,非常感謝!

 

  1. #include <iostream>   
  2. #include<cmath>   
  3. using namespace std;   
  4. int main ()   
  5. {   
  6.        int i[4792],j=1;   
  7.        for(int a=0;a<4792;a++){   
  8.            for(int ii=j+1;;ii++){   
  9.            int b,c;   
  10.         c=(int)sqrt((double)ii);   
  11.         for(b=2;b<c+1;b++){   
  12.         if(ii%b==0) break;   
  13.         }   
  14.         if(c+1==b){   
  15.         i[a]=ii; j=ii;break;}   
  16.         }   
  17.        }   
  18.   
  19.   
  20.        int aa,bb,cc,d,e=0,w=0;   
  21.           while(cin>>aa){w++;   
  22.               e=0;   
  23.               if(aa==0)break;   
  24.                              
  25.               cout<<aa<<" = ";if(aa==1)cout<<1;   
  26.        bb=0;   d=0;   
  27.        if(aa<0){cout<<"-1";aa=-aa;d++;}   
  28.         cc=0;   
  29.        while(aa!=1){   
  30.               
  31.           while(aa%i[bb]==0){      
  32.               aa=aa/i[bb];   
  33.                 
  34.               if(d>0)cout<<" x ";d++;   
  35.                  
  36.               cout<<i[bb];   
  37.               cc=1;   
  38.   
  39.           }   
  40.              
  41.        if(bb<4792) bb++;   
  42.        else {e=1;break;}   
  43.       }   
  44.          
  45.       if(e==1){   
  46.           if(d>0)cout<<" x ";   
  47.           cout<<aa;   
  48.              
  49.           }   
  50.              
  51.       cout<<endl;   
  52. }     
  53.   
  54.   
  55.     return 0;   
  56. }  

 

 

 
ZeroJudge Forum