Kurzusok
/
Python
Python
/
Feladatok
/
Palindrom szorzatok
Palindrom szorzatok

Palindrom szorzatok

Közepes

Utasítások

Keresd meg a palindromszorzatokat egy adott intervallumban.

A palindromszám olyan szám, amely ugyanaz marad, ha megfordítod a számjegyeit. Például a 121 palindromszám, a 112 viszont nem.

Egy adott számintervallumban keresd meg a legnagyobb és a legkisebb olyan palindromszámokat, amelyek két, az intervallumon belüli szám szorzataként állnak elő.

A megoldásodnak vissza kell adnia a legnagyobb és a legkisebb palindromszámot, valamint mindkettőnek az intervallumon belüli tényezőit. Ha a legnagyobb vagy a legkisebb palindromszámnak több tényezőpárja van az intervallumon belül, akkor add vissza az összes tényezőpárt.

1. példa

Adott a [1, 9] intervallum (mindkét végpontot beleértve)...

És adott az ezen intervallumon belüli összes lehetséges szorzat listája: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 15, 21, 24, 27, 20, 28, 32, 36, 25, 30, 35, 40, 45, 42, 48, 54, 49, 56, 63, 64, 72, 81]

A palindromszorzatok mind egyjegyű számok (ebben az esetben): [1, 2, 3, 4, 5, 6, 7, 8, 9]

A legkisebb palindromszorzat az 1. A tényezői: (1, 1). A legnagyobb palindromszorzat a 9. A tényezői: (1, 9) és (3, 3).

2. példa

Adott a [10, 99] intervallum (mindkét végpontot beleértve)...

A legkisebb palindromszorzat a 121. A tényezői: (11, 11). A legnagyobb palindromszorzat a 9009. A tényezői: (91, 99).

Megjegyzések a smallest és largest megvalósításához:

Mindkét függvénynek két kulcsszavas argumentumot kell fogadnia:

  • max_factor: int
  • min_factor: int, alapértelmezett 0

A visszatérési értékük egy tuple -- (value, factors) kell hogy legyen, ahol a value maga a palindrom, a factors pedig egy iterable, amely a palindrom mindkét tényezőjét tetszőleges sorrendben tartalmazza.

Kivételüzenetek

Néha szükség van arra, hogy kivételt dobj. Ilyenkor mindig adj meg egy beszédes hibaüzenetet, amely megmutatja, mi a hiba forrása. Ettől olvashatóbb lesz a kódod, és sokat segít a hibakeresésben. Ha tudod, hogy a hiba forrása egy bizonyos típusú, választhatsz a beépített hibatípusok közül, de ilyenkor is szerepeljen értelmes üzenet.

Ez a konkrét feladat megköveteli, hogy a raise utasítást használd, hogy „dobj” egy ValueError-t, amikor a largest() vagy a smallest() függvény olyan tényezőpárt kap, amely nincs a megfelelő tartományban. A tesztek csak akkor futnak le sikeresen, ha raise-eled a exception-t, és üzenetet is fűzöl hozzá.

Ha üzenettel szeretnél ValueError-t dobni, írd az üzenetet a exception típus argumentumaként:

# if the max_factor is less than the min_factor
raise ValueError("min must be <= max")
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Python Exercism

Készen állsz elkezdeni a(z) Palindrom szorzatok feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Python nyelvet 17 fogalom146 feladat segítségével, valódi emberi mentorálással, mindez ingyen.