Hirdetés

Új hozzászólás Aktív témák

  • Jester01
    veterán

    konkrétan mondta a gyakvezér, hogy a 3 ciklus valami mást kell..., hogy a program 5 másodpercen belül legyen... (vagy millisecundum...).
    Rákérdezek mélben a gyakvezérnél, és még alszok rá egyet, holnap éjfélig van a beadási határidő, hátha eszembe jut valami okosság álomközben.

    a primtényezős felbontást meglestem. A wikipédián talált kóddal ellenőriztem le, a 99 kivételével mindegyikre annyi prím számot adott le amennyi a példában a kimenten szerepel.

    "Ha osztója, akkor gyorsan le is kell osztani és belső ciklusban már csak ezt felbontani."
    Ez hogy nézz ki egy példa kódban? if (terfogat%i==0) eddig oké a további részt nem tudom megvalósítani :(

    Itt van egy ciklussal ... van helyette viszont rekurzió :DD
    (a ciklus gyorsabb)

    int factor(int x, int start, int depth)
    {
    int count = 0;
    int max = sqrt(x);
    int i;
    for(i = start; i <= max; i++)
    {
    div_t q = div(x, i);
    if (q.rem == 0)
    {
    count += (depth > 1) ? factor(q.quot, i, depth - 1) : 1;
    }
    }

    return count;
    }

    A feladat eredményét a factor(terfogat, 1, 3) adja.
    Ez az én gépemen (2.2GHz) kevesebb mint 5ms alatt lefut bármit is adtam be neki eddig. Na jó, 2 milliárdra már 12ms

Új hozzászólás Aktív témák