Informatică, întrebare adresată de infooo3523, 8 ani în urmă

Tipăriţi toate numerele prime aflate între două numere naturale citite.
Am rezolvarea aceasta:
a=int(input('a='))
b=int(input('b='))
for i in range(a+1,b):
prim=True
for j in range(2,int(i/2)+1):
if i%j==0:
prim=False
if prim:
print(i)

Problema e ca daca a=1 si b=10, imi afiseaza 2, 3, 5, 7 dar daca scriu a=10 si b=1 nu imi mai afiseaza nimic. Se poate o rezolvare in care sa imi arate numerele si cand a>b? Am pus tot felul de conditii, dar tot nu imi arata numerele cand a>b


Sergetec: intre b = int si for adauga o conditie, daca a > b atunci swap(a, b), iar de acolo codul se continua normal
infooo3523: Am incercat acum, dar obtin eroare

Răspunsuri la întrebare

Răspuns de andrei750238
0

a=int(input('a='))

b=int(input('b='))

if a>b:

   aux = a

   a = b

   b = aux

for i in range(a+1,b):

   prim=True

   for j in range(2,int(i/2)+1):

       if i%j==0:

           prim=False

   if prim:

       print(i)

► EXPLICATIE :

Daca a>b atunci facem interschimbarea variabilelor.

Anexe:
Alte întrebări interesante