我正在進入UVA online programming competition,並正在研究UVA 583(Prime因子)的解決方案。主要因素輸出 - 問題是什麼?
我最近爲此接受了一個Java解決方案。當我嘗試將它翻譯成C++時,即使對於每個測試用例我都會得到WA(「錯誤答案」),但兩個程序都輸出相同的答案。
任何人都可以指出什麼是錯的?
#include <iostream>
#include <string>
#include <cmath>
#include <stdio.h>
using namespace std;
int primes [4792];
void factorize(int x1){
int c = 0;
for(int i = 0;i<4792;i++){
int x2 = primes[i];
while(x1%x2==0){
if(c!=0)
cout<<" x ";
cout<<x2;
c++;
x1/=x2;
}
}
if(x1>1 && c!=0){
cout<<" x "<<x1;
}
if(c==0)
cout<<x1;
cout<<endl;
}
int main(){
primes[0]=2;
primes[1]=3;
int count = 2;
for(int i=5; i<46340;i+=2){
if(i%6 != 1 && i%6 != 5)
continue;
int limit = (int)sqrt((double)i);
bool isPrime = true;
for(int j=0;j<count;j++){
if(primes[j]<limit){
if(i%primes[j]==0){
isPrime = false;
break;
}
}
}
if(isPrime){
primes[count]=i;
count++;
}
}
int x = 0;
cin>>x;
while(x!=0){
string out;
cout<<x<<" = " ;
int x1 = x;
if(x<0){
cout<< "-1 x ";
x1*=-1;
}
factorize(x1);
cin>>x;
}
return 0;
}
間46個平方等什麼WA和UVA是什麼意思? – walrii 2012-08-05 15:52:42
請至少顯示問題規範的鏈接。此外,由於您最近爲此接受了Java解決方案,因此如何將它與您的C++解決方案並行進行區分?至少有人可以執行等同性檢查。 – timrau 2012-08-05 15:54:50
@walrii錯誤的答案。 – sepp2k 2012-08-05 15:55:03