Dobrý den,
dnes jsem se potýkala s touto úlohou (pro Python3): Určete všechna prvočísla v rozsahu (20,40) a určete,
který poměr z těchto čísel je nejblíže zadané hodnotě 1.7. Jediné, co se mi podařilo vytvořit, je však pouze
program, který vypíše žádaná prvočísla, odchylky od hodnoty 1.7 a určí jejich minimu (viz můj kód níže).
Mohl by mi prosím někdo poradit, jak splnit zadání úlohy buď úpravou mého kódu, popř. mě navést na postup,
který by vedl k řešení? Všem předem děkuji.
(U těch prvočísel chci přepsat range na (2, sqrt(cislo)), všimla jsem si toho až těď po vložení kódu)
# Určí, zda je dané číslo prvočíslo
def prvo(cislo):
if (cislo >= 2):
for i in range(2, cislo - 1):
if((cislo%i) == 0):
return False
return True
# Tady se připraví seznam prvočísel v zadaném intervalu
seznam = []
for i in range (20,40):
a = prvo(i)
if (a == True):
seznam.append(i)
print(seznam)
a = seznam
#Zde zjišťuji, jaké jsou odchylky podílů jednotlivých čísel od hodnoty 1.7 a tu minimální
prumery = []
rozdily = []
for i in range(0,4):
for j in range(0,4):
p = a[i]/a[j]
prumery.append(p)
rozdil = abs(p - 1.7)
rozdily.append(rozdil)
minimum = min(rozdily)
print(rozdily)
print(minimum)