1. Határozzuk meg a
lehető legnagyobb prím számot egy C++ program segítségével.
Ehhez használhatjuk az alábbi rekurzív függvényt, amely
megvizsgálja, hogy egy szám prím-e,
vagy nézhetünk optimalizált algoritmusokat is ehhez.
Óra végén 10 es jár annak, aki a legnagyobb prím számot tudja
felmutatni, ha bemutatja a C++ programot, s bizonyítja (képernyőképpel,
codeblocks vagy cmd ablakkal)
hogy valóban az illető program adta ki a számot.
-O4 optimalizálással, i7 es procival s használva az órán vett
rekurzív függvényt:
4.26 mp a legnagyobb 1 000 000 000 alatti prím számításához
42.129 mp a legnagyobb 10 000 000 000 alattihoz
424.768 mp a legnagyobb 100 000 000 000 alattihoz
Ehhez a stack méretét meg kell növelni, amit a következő linker option
nal lehet:
-Wl,--stack,N
Az én gépemen N = 6438400bool prim(long n, long i){
//cout << i << endl;
if (i>(n/2+1)){
return true;
}
if (n%i == 0){
return false;
}
return prim(n, i+1);
}