我正在通過本書的方式學習C++編程原理和實踐。在書中有一個練習,通過檢查一個數字來查找質數,這個數字已經被確定爲素數。這是我寫的解決這個問題的功能。使用C++函數進行練習來識別素數使用!=
vector <int> primes;
int findprime (int x) {
for (int p=0; p<primes.size(); ++p) {
if (x%primes[p]!=0) {
return x;
}
}
}
int main() {
primes.push_back(2);
for (int i=3; i<100; ++i) {
primes.push_back(findprime(i));
}
for (int i=0; i<primes.size(); ++i) {
cout << primes[i] << '\n';
}
}
在他的解決辦法作者的功能是:
bool is_prime(int n) {
for (int p = 0; p<prime.size(); ++p)
if (n%prime[p]==0) return false; // no remainder: prime[p] divided
return true; // no smaller prime could divide
}
我的代碼不工作,但我真的不明白爲什麼。我想我錯過了一些關於這些功能如何運作的知識。如果有人會解釋我的代碼不起作用並填寫我的空白,我會非常感激。
你得到任何錯誤或結果是錯誤的? – denis
我的結果是錯誤的。將1-100之間的每個數字放入向量中。我認爲即使通過我已經指定的函數只會返回值,如果其!!它不管返回值。我相信我對函數的運作有些誤解,希望有經驗的人能解釋一下。 – TrustNo1UK