Informatika gyűjtemény

Egy szinttel feljebb Megoldás

2004050607080910

NézetNyomtat

A megoldás algoritmusa

A feladat nagyon hasonlít a partíció problémára. Csak arra kell vigyázni, hogy az 1-et ne engedjük meg, mint tényező, ha el akarjuk kerülni a végtelen ciklust.
Bont(n, szint)
   Ha n = 1 akkor Ki: szam[1], szam[2], ..., szam[szint]
   különben
      Ciklus d := szam[szint]-től n-ig
         Ha n osztható d-vel akkor
            szam[szint + 1] := d
            Bont(/ d, szint + 1)
         Elágazás vége
      Ciklus vége
   Elágazás vége
Eljárás vége
Kezdetben szam[0] = 2 és a Bont(n, 0) hívás indítja a szorzatok kiszámítását.

Megoldások