Hallo,
ich habe ein Programm zur Suche von Primzahlen in C++ geschrieben,
für die Suche in 1-10.000.000 braucht das Programm 26sek, bei 1-100.000.000
11min, bei 1-200.000.000 30min (und 45mb ramverbrauch). zwar finde ich das
programm shcon unglaublich schnell, allerdings möchte ich das weiter optimieren,
momentan mache ich einen test mit den zahlen von 1 bis 1 milliarde.
code:
#include<vector>
#include<iostream>
int main() {
std::vector<unsigned int> primes;
primes.push_back(2);primes.push_back(3);primes.push_back(5);
std::cout << "2\n3\n5\n";
unsigned int i = 7;
unsigned int j;
unsigned int lengthofprimesarray = 3;
bool isprime;
while(i < 1000000000) {
j = 1;
isprime = true;
while(j < lengthofprimesarray and !(primes.at(j)*primes.at(j) > i)) {
if(i%primes.at(j) == 0) {
isprime = false;
break;
}
j++;
}
if(isprime == true) {
primes.push_back(i);
lengthofprimesarray++;
std::cout << i << "\n";
}
if(i%10 == 3) {
i += 4;
} else {
i += 2;
}
}
return 0;
}
geht das auch effektiver?
(btw. falls jemand den code unsauber findet: das war mein erstes brauchbares programm in c++...)
Nick