< Zpět na seznam úloh

A5 Mezera mezi prvočísly

var names = ["n"]
var mainFunction = "mezera"
var remapInput = `
_main_inputs = [int(x) for x in _main_inputs]
`
var datasets = [
  {argv: [9], out: 4},
  {argv: [13], out: 0},
  {argv: [24], out: 6},
  {argv: [4], out: 2},
  {argv: [2], out: 0},
  {argv: [90], out: 8},
  {argv: [1000], out: 12},
  {custom: true},
]

Vaším úkolem je napsat funkci mezera(n), která dostane celé číslo n větší než 1. Má vrátit rozdíl mezi nejbližším větším a nejbližším menším prvočíslem. Pokud je n samo prvočíslo, vrátí 0.

Například mezera(9) vrátí 4, protože nejbližší větší prvočíslo je 11 a nejbližší menší je 7. Ale mezera(13) vrátí 0, protože 13 je prvočíslo.

Nápověda: Úlohu si rozdělte na menší funkce a ty pak skládejte dohromady. Hodí se třeba:

Funkce mezera pak už jen zavolá ty ostatní.

Bonus: Co udělá vaše funkce pro n rovné 1? Zkuste to v testovací sadě "Vlastní..." a rozmyslete si proč.

def je_prvocislo(n):
  return False

def mezera(n):
  return 0