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:
je_prvocislo(n), která vrátí True nebo False,vetsi_prvocislo(n), která vrátí nejbližší prvočíslo větší než n,mensi_prvocislo(n), která vrátí nejbližší prvočíslo menší než n.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