👤
a fost răspuns

Ma poate ajuta cineva cu o explicatie mai detaliata la aceasta rezolvare?

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)

Nu inteleg cum alege programul numerele care sunt prime


Răspuns :

RoTakX

Răspuns:

Explicație:

Primele două linii iți sunt clare, programul citește variabilele

El va afișa toate numerele prime de la A la B

A treia linie începe iterația

Inițial, programul presupune că numărul i este prim

Apoi, ia pe rând fiecare număr de la 2 la i / 2 și încearcă să-l împartă pe i la acel număr

Dacă i se împarte la vreun număr, înseamnă clar că nu este prim, căci numerele prime se împart doar la 1 și la ele însele.

Deci, dacă i nu se împarte la niciun număr între 2 și i / 2, înseamnă că e  prim.

Acest proces se repetă pentru fiecare număr de la a la b.

Algoritmul acesta este neeficient, totuși. cel eficient ar rula doar de la 2 la sqrt(i). în fine