Responsive image Boda Szilárd weblapja

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.


N
  • 1 000 000 000
  • 10 000 000 000
  • 100 000 000 000
  • 1 000 000 000 000
  • 10 000 000 000 000
  • 100 000 000 000 000
  • 1 000 000 000 000 000
  • 10 000 000 000 000 000



I7-4710HQ processzor, futási idő mp ben
  • 4.26
  • 42.129
  • 424.768
  • NA
  • NA
  • NA
  • NA
  • NA
I9-14900HX processzor, futási idő mp ben
  • 0.021
  • 0.015
  • 0.028
  • 0.036
  • 0.063
  • 0.129
  • 0.431

-O4 optimalizálással,  a mellékelt procival s enyhén optimalizálva az alábbi függvényt készült a fenti táblázat. 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 = 6438400

Rekurzív prím függvény:
bool 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);

}