Pentagonal numbers

Pentagonal numbers

Avtor: Tjaša Panič

Besedilo naloge

(besedilo1.jpg)

Opis problema

Pentagonalna števila najdemo z pomočjo formule :

(formula.jpg)

Vsota dveh pentagonalnih števil je lahko prentagonalno ali pa ne. Enako velja tudi za razliko dveh pentagonalnih števil. Obstaja pa manj takih parov pentagonalnih števil, da je njuna vsota in razlika pentagonalno število. To pomeni, da če je vsota dveh pentagonalnih števil, prav tako pentagonalno, ni nujno, da je potem tudi njuna razlika pentagonalno število.

Poiskati moramo torej taki dve pentagonalni števili, da je njuna vsota in razlika prav tako pentagonalna ter vrniti razliko dveh pentagonalnih števil, ki je minimalno pentagonalno število.

Ključni korki v pythonu

Za reševanje te naloge sestavimo več funkcij:

  1. funkcijo, ki nam vrne pentagonalno število

    • uporabimo formulo Pn za izračun n-tega pentagonalnega števila, pri čimer je n naravno število ter ukaz return;
    • izvedemo še assert stavek, ki sproži izjemo, če pogoj, da mora biti n naravno število, ni izpolnjen;
  2. funkcijo, ki nam preveri, če je neko število pentagonalno

    (izrazeni n.jpg)
    • iz formule za računanje pentagonalnega števila izrazimo n, če je str(n) [-1] == 0, potem je n pentagonalno število;
  3. funkcijo, ki vrne minimalno razliko dveh pentagonalnih števil, katerih vsota in razlika sta prav tako pentagonalni števili.

    • uporabimo prejšnji dve funkciji in zanke

Rešitev naloge v pythonu

(resitev pent.jpg)

Testni primeri

Testni primeri za funkcijo pentagonal(n):

(pentagonal.jpg)

Testna primera za funkcijo je_pentagonalno(P):

(jepentagonalno.jpg)

Testni primer funkcije poisci():

(poisci.jpg)

Filmček testnih primerov

0%
0%