Sito na planszy
Liczby pierwsze: sprawdzanie dzielników do pierwiastka - Informatyka - liceum klasa 1, zakres rozszerzony (Python)
Sito najlepiej widać na rysunku. Liczby od 1 do 100 to pola siatki 10 × 10 (pierwszy wiersz u góry: 1-10). Strzałka obrysowuje pole każdej liczby pierwszej na **zielono**, a pole liczby złożonej (i jedynki) **przekreśla** na czerwono. Popatrz na wzór: wielokrotności 2, 5 i 10 tworzą całe kolumny, a liczby pierwsze (poza 2 i 5) leżą tylko w kolumnach liczb kończących się na 1, 3, 7 i 9.
arrow = Sprite()
arrow.image = 16
arrow.size = 10
world.add(arrow)
def cell(k):
col = (k - 1) % 10
row = (k - 1) // 10
return -95 + 19 * col, 76 - 19 * row
def jump(x, y):
arrow.pen.on = False
arrow.position = (x, y)
arrow.angle = 0
arrow.pen.on = True
def square(x, y, side):
jump(x, y)
for _ in range(4):
arrow.move(side)
arrow.turn(90)
def cross(x, y, side):
jump(x, y)
arrow.position = (x + side, y + side)
def sieve(n):
is_prime = [True] * (n + 1)
is_prime[0] = is_prime[1] = False
i = 2
while i * i <= n:
if is_prime[i]:
for j in range(i * i, n + 1, i):
is_prime[j] = False
i += 1
return is_prime
is_prime = sieve(100)
for k in range(1, 101):
x, y = cell(k)
if is_prime[k]:
arrow.pen.color = (22, 163, 74)
square(x, y, 14)
else:
arrow.pen.color = (220, 38, 38)
cross(x, y, 14)Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Informatyka - liceum klasa 1, zakres rozszerzony·Zaloguj się, aby zapisać postęp na koncie.