Программирование (Python)
Зачем нужен цикл?
Как работает цикл?
Ещё один вариант
Цикл с предусловием
Сколько раз выполняется цикл?
Подбор числа битов
Задачи
Задачи
Разбиение числа на отдельные цифры
Разбиение числа на отдельные цифры
Разбиение числа на отдельные цифры
Сумма цифр числа
Сумма цифр числа
Сумма цифр числа
Сумма цифр числа
Задачи
Задачи
Разложение числа на простые сомножители
Разложение числа на простые сомножители
Разложение числа на простые сомножители
Задачи
Задачи
Алгоритм Евклида
Алгоритм Евклида
Алгоритм Евклида
Модифицированный алгоритм Евклида
Модифицированный алгоритм
В стиле Python
В других языках программирования
Задачи
Задачи
Сколько раз выполняется цикл?
Обработка потока данных
Обработка потока данных
Задачи
Задачи на циклы (дополнительные)
Задачи
Цикл по переменной
Цикл по переменной
Цикл по переменной
Цикл по переменной
В других языках программирования
Задачи
Задачи
Проверка числа на простоту
Проверка числа на простоту
Проверка числа на простоту
Если искать все делители…
Задачи
Задачи
Задачи
1.34M
Category: programmingprogramming

Программирование (Python). Зачем нужен цикл?

1. Программирование (Python)

1
Программирование
(Python)
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

2. Зачем нужен цикл?

Программирование (Python), 8 класс
2
Зачем нужен цикл?
Задача. Вывести 5 раз «Привет!».
print("Привет")
print("Привет")
print("Привет")
print("Привет")
print("Привет")
Цикл «N раз»:
сделай 5 раз
print("Привет")
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
? А если 5000?
такого оператора нет
в Python!
http://kpolyakov.spb.ru

3. Как работает цикл?

Программирование (Python), 8 класс
3
Как работает цикл?
! Нужно запоминать, сколько раз цикл уже выполнен!
переменная-счётчик
ещё не делали
счётчик = 0
пока счётчик < 5
print("Привет")
счётчик +=
= счётчик
+ 1
счётчик
1
сделали ещё раз
c = 0
while c < 5:
print("Привет")
c += 1
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

4. Ещё один вариант

Программирование (Python), 8 класс
4
Ещё один вариант
Идея: запоминать, сколько шагов осталось.
счётчик = 5
пока счётчик > ???
0
print("Привет")
счётчик -=
= счётчик
???
1
1
c = 5
while c > 0:
print("Привет")
c -= 1
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
? Как записать иначе
последнюю строку?
http://kpolyakov.spb.ru

5. Цикл с предусловием

Программирование (Python), 8 класс
5
Цикл с предусловием
• условие проверяется при входе в цикл
• как только условие становится ложным, работа цикла
заканчивается
• если условие ложно в самом начале, цикл не
выполняется ни разу
while условие:
...
тело цикла
? Если условие никогда не станет ложно?
while True:
...
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
бесконечный цикл
(зацикливание)
http://kpolyakov.spb.ru

6. Сколько раз выполняется цикл?

Программирование (Python), 8 класс
6
Сколько раз выполняется цикл?
a = 4; b = 6
while a < b: a += 1
2 раза
a=6
a = 4; b = 6
while a < b: a += b
1 раз
a = 10
a = 4; b = 6
while a > b: a += 1
0 раз
a=4
a = 4; b = 6
while a < b: b = a - b
1 раз
b = -2
a = 4; b = 6
while a < b: a -= 1
зацикливание
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

7. Подбор числа битов

Программирование (Python), 8 класс
7
Подбор числа битов
Задача. Ввести целое число – мощность алфавита M.
Найти количество битов i, необходимое для
равномерного кодирования символов из этого
алфавита.
?
Как найти i?
2i ≥ M
Начинаем с i = 1, увеличиваем i, пока i < M.
M = int(input("Мощность алфавита:"))
i = 1
while 2**i > 0:
i += 1
print(f"i={i}")
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

8. Задачи

Программирование (Python), 8 класс
8
Задачи
«A»: Напишите программу, которая получает с
клавиатуры количество повторений и выводит
столько же раз какое-нибудь сообщение.
Пример:
Сколько раз повторить? 3
Привет!
Привет!
Привет!
«B»: Напишите программу, которая получает с
клавиатуры натуральное число N и подбирает
наибольшее натуральное число, квадрат которого
меньше, чем N.
Пример:
Введите число: 311
Ответ: 17
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

9. Задачи

Программирование (Python), 8 класс
9
Задачи
«С»: Напишите программу, которая получает с
клавиатуры натуральное число N и подбирает
наибольшее число Фибоначчи, которое не больше,
чем N. Числа Фибоначчи – это последовательность
чисел, в которой первые два числа равны 1, а
каждое следующее равно сумме двух предыдущих:
1, 1, 2, 3, 5, 8, 13, 21, …
Пример 1:
Введите число: 311
Ответ: 233
Пример 2:
Введите число: 377
Ответ: 377
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

10. Разбиение числа на отдельные цифры

Программирование (Python), 8 класс
10
Разбиение числа на отдельные цифры
Задача. Ввести натуральное число и вывести в столбик
все его цифры, начиная с последней.
123 3
2
1
Выделить последнюю цифру числа в переменной N:
d = N % 10
123 3
Отбросить последнюю цифру числа в переменной N:
N = N // 10
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
123 12
http://kpolyakov.spb.ru

11. Разбиение числа на отдельные цифры

Программирование (Python), 8 класс
11
Разбиение числа на отдельные цифры
• выделяем последнюю цифру числа (%)
• выводим эту цифру на экран
• отсекаем последнюю цифру числа (//)
N
d
начальное значение
123
12
3
1
2
0
1
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
? Когда остановиться?
while N != 0:
...
http://kpolyakov.spb.ru

12. Разбиение числа на отдельные цифры

Программирование (Python), 8 класс
12
Разбиение числа на отдельные цифры
N = int(input("Введите число:"))
while N != 0:
d = N % 10
print( d )
N = N // 10
? Если вместо 10 написать 8 ?
? Если вместо 10 написать 2?
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
12 4
1
12 0
0
1
1
http://kpolyakov.spb.ru

13. Сумма цифр числа

Программирование (Python), 8 класс
13
Сумма цифр числа
Задача. Вычислить сумму цифр введённого числа.
123 1 + 2 + 3 = 6
Выделить последнюю цифру числа в переменной N:
d = N % 10
123 3
Отбросить последнюю цифру числа в переменной N:
N = N // 10
123 12
Добавить к переменной s значение переменной d:
s +=
= sd+ d
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
s = 6 6 + 4 = 10
d=4
http://kpolyakov.spb.ru

14. Сумма цифр числа

Программирование (Python), 8 класс
14
Сумма цифр числа
• выделяем последнюю цифру числа (%)
• увеличиваем сумму на значение цифры (s+=d)
• отсекаем последнюю цифру числа (//)
N
d
123
s
0
начальные значения
? Когда остановиться?
12
3
3
1
2
5
0
1
6
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
while N != 0:
...
http://kpolyakov.spb.ru

15. Сумма цифр числа

Программирование (Python), 8 класс
15
Сумма цифр числа
начало
обнулить
сумму
ввод N
s= 0
N != 0?
да
d = N % 10
s += d
N = N // 10
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
выполнять
"пока N != 0"
нет
вывод s
конец
http://kpolyakov.spb.ru

16. Сумма цифр числа

Программирование (Python), 8 класс
16
Сумма цифр числа
N = int(input("Введите целое число")); N1= N
s = 0
while N != 0:
d = N % 10
s += d
N = N // 10
print("Сумма цифр числа", N1,
N, " равна", s)
? Что плохо?
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

17. Задачи

Программирование (Python), 8 класс
17
Задачи
«A»: Напишите программу, которая вводит с клавиатуры
натуральное число и выводит цифры его записи в
троичной системе счисления (начиная с последней).
Пример:
Введите число: 12
0
1
1
«B»: Напишите программу, которая получает с
клавиатуры натуральное число и определяет,
сколько раз в его двоичной записи встречается
цифра 1.
30 = 111102
Пример:
Введите число? 30
Единиц: 4
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

18. Задачи

Программирование (Python), 8 класс
18
Задачи
«C»: Напишите программу, которая получает с
клавиатуры натуральное число и находит
наибольшую цифру в его десятичной записи.
Пример:
Введите число: 311
Наибольшая цифра: 3
«D»: Напишите программу, которая получает с
клавиатуры натуральное число и определяет, есть
ли в его десятичной записи одинаковые цифры,
стоящие рядом.
Пример:
Введите число: 553
Введите число: 535
Ответ: да.
Ответ: нет.
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

19. Разложение числа на простые сомножители

Программирование (Python), 8 класс
19
Разложение числа на простые сомножители
1260 = 2 · 2 · 3 · 3 · 5 · 7
простые числа
Основная теорема арифметики: такое
разложение единственно.
Введите число: 1260
2
2
3
3
5
7
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

20. Разложение числа на простые сомножители

Программирование (Python), 8 класс
20
Разложение числа на простые сомножители
1260 = 2 · 2 · 3 · 3 · 5 · 7
d = 2
пока N > 1:
если N делится на d:
print( d )
N //= d
иначе:
d += 1
N
d
экран
1260
2
2
630
315
2
3
105
3
3
35
4
35
5
7
6
7
7
5
7
1
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

21. Разложение числа на простые сомножители

Программирование (Python), 8 класс
21
Разложение числа на простые сомножители
N = int(input("Введите целое число"))
d = 2
while N > 1:
if N % d == 0:
print( d )
N //= d
else:
# делится на d
# следующий делитель d
d += 1
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

22. Задачи

Программирование (Python), 8 класс
22
Задачи
«A»: Напишите программу, которая получает с
клавиатуры натуральное число и выводит все его
простые сомножители в одну строчку.
Пример:
Введите число: 1260
1*2*2*3*3*5*7
«B»: Напишите программу, которая получает с
клавиатуры натуральное число и определяет,
сколько у него простых делителей.
Пример:
Введите число? 1260
Ответ: 6
1260 = 22·32·5·7
2, 2, 3, 3, 5, 7
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

23. Задачи

Программирование (Python), 8 класс
23
Задачи
«C»: Напишите программу, которая получает с
клавиатуры натуральное число и находит сумму
всех его различных простых делителей.
Пример:
1260 = 22·32·5·7
Введите число: 1260
Ответ: 17
2+3+5+7
«D»: Напишите программу, которая получает с
клавиатуры натуральное число и определяет, есть
ли в его разложении одинаковые делители.
Пример:
Введите число: 1260
Введите число: 210
Ответ: да.
Ответ: нет.
210 = 2·3·5·7
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

24. Алгоритм Евклида

Программирование (Python), 8 класс
24
Алгоритм Евклида
Задача. Найти наибольший общий делитель (НОД) двух
натуральных чисел.
Заменяем большее из двух чисел разностью
большего и меньшего до тех пор, пока они не
станут равны. Это и есть НОД.
НОД(a,b)= НОД(a-b, b)
= НОД(a, b-a)
Евклид
(365-300 до. н. э.)
Пример:
НОД (14, 21) = НОД (14, 21-14) = НОД (14, 7)
= НОД (7, 7) = 7
много шагов при большой разнице чисел:
НОД (1998, 2) = НОД (1996, 2) = … = 2
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

25. Алгоритм Евклида

Программирование (Python), 8 класс
25
Алгоритм Евклида
начало
a = b?
да
конец
нет
нет
b=b-a
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
a > b?
да
a=a-b
http://kpolyakov.spb.ru

26. Алгоритм Евклида

Программирование (Python), 8 класс
26
Алгоритм Евклида
while a != b:
if a > b:
a -=
= ab- b
else:
b -=
= ba- a
как заменить?
? Где будет НОД? Как его вывести?
? Как вывести НОД в формате НОД(14,21) = 7?
? А без дополнительных переменных?
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

27. Модифицированный алгоритм Евклида

Программирование (Python), 8 класс
27
Модифицированный алгоритм Евклида
Заменяем большее из двух чисел остатком от деления
большего на меньшее до тех пор, пока меньшее не
станет равно нулю. Тогда большее — это НОД.
НОД(a,b)= НОД(a % b, b)
= НОД(a, b % a)
Пример:
НОД (14, 21) = НОД (14, 7) = НОД (0, 7) = 7
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

28. Модифицированный алгоритм

Программирование (Python), 8 класс
28
Модифицированный алгоритм
while a != 0 and b != 0:
if a > b:
a = a % b
else:
b = b % a
? Где будет НОД? Как его вывести?
if a != 0:
print(a)
else:
print(b)
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
print( a+b
??? )
http://kpolyakov.spb.ru

29. В стиле Python

Программирование (Python), 8 класс
29
В стиле Python
while b!=0:
a, b = b, a % b
Почему работает?
print(a)
заменить a на b и b на
(a % b)
?
a
b
a
b
21
14
14
21
14
7
21
14
7
0
14
7
! a > b!
7
0
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

30. В других языках программирования

Программирование (Python), 8 класс
30
В других языках программирования
Паскаль:
while (a<>0) and
(b<>0) do
if a>b then
a:= a mod b
else
b:= b mod a;
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
С++:
while (a!=0 && b!=0)
{
if (a > b)
a = a % b;
else
b = b % a;
}
http://kpolyakov.spb.ru

31. Задачи

Программирование (Python), 8 класс
31
Задачи
«A»: Ввести с клавиатуры два натуральных числа и найти их
НОД с помощью алгоритма Евклида.
Пример:
Введите два числа:
21 14
НОД(21,14)=7
«B»: Ввести с клавиатуры два натуральных числа и найти их
НОД с помощью модифицированного алгоритма
Евклида. Заполните таблицу:
a
64168
358853
6365133
17905514
549868978
b
82678
691042
11494962
23108855
298294835
НОД(a,b)
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

32. Задачи

Программирование (Python), 8 класс
32
Задачи
«C»: Ввести с клавиатуры два натуральных числа и сравнить
количество шагов цикла для вычисления их НОД с
помощью обычного и модифицированного алгоритмов
Евклида.
Пример:
Введите два числа:
1998 2
НОД(1998,2)=2
Обычный алгоритм: 998
Модифицированный: 1
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

33. Сколько раз выполняется цикл?

Программирование (Python), 8 класс
33
Сколько раз выполняется цикл?
a = 4; b = 6
while a < b: a += 1
2 раза
a=6
a = 4; b = 6
while a < b: a += b
1 раз
a = 10
a = 4; b = 6
while a > b: a += 1
0 раз
a=4
a = 4; b = 6
while a < b: b = a - b
1 раз
b = -2
a = 4; b = 6
while a < b: a -= 1
зацикливание
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

34. Обработка потока данных

Программирование (Python), 8 класс
34
Обработка потока данных
Задача. На вход программы поступает поток данных —
последовательность целых чисел, которая
заканчивается нулём. Требуется найти сумму
элементов этой последовательности.
while x!=0:
# добавить x к сумме
# x = следующее число
? Откуда возьмётся x в первый раз?
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

35. Обработка потока данных

Программирование (Python), 8 класс
35
Обработка потока данных
s = 0
x = int(input()) # первое число
while x!=0:
s += x
x = int(input()) # ввести следующее
print("Сумма ", s)
? Как найти количество чисел?
? Как найти сумму положительных?
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

36. Задачи

Программирование (Python), 8 класс
36
Задачи
«A»: На вход программы поступает неизвестное
количество чисел целых, ввод заканчивается нулём.
Определить, сколько получено чисел, которые
делятся на 3.
«B»: На вход программы поступает неизвестное
количество чисел целых, ввод заканчивается нулём.
Определить, сколько получено двузначных чисел,
которые заканчиваются на 3.
«C»: На вход программы поступает неизвестное
количество чисел целых, ввод заканчивается нулём.
Найти максимальное из введённых чётных чисел.
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

37. Задачи на циклы (дополнительные)

Программирование (Python), 8 класс
37
Задачи на циклы (дополнительные)
«A»: Напишите программу, которая предлагает ввести
число-пароль и не переходит к выполнению
основной части, пока не введён правильный пароль.
Основная часть – вывод на экран «секретных
сведений».
«B»: Напишите программу, которая получает с
клавиатуры натуральное число, которое больше 1, и
определяет, простое оно или нет. Для этого нужно
делить число на все натуральные числа, начиная с
2, пока не получится деление без остатка.
«C»: Напишите программу, которая получает с
клавиатуры два целых числа и вычисляет их
произведение, используя только операции
сложения.
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

38. Задачи

Программирование (Python), 8 класс
38
Задачи
«D»: Напишите программу, которая получает с
клавиатуры натуральное число и вычисляет целый
квадратный корень из него – наибольшее число,
квадрат которого не больше данного числа.
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

39. Цикл по переменной

Программирование (Python), 8 класс
39
Цикл по переменной
Задача. Вывести на экран степени числа 2 от 20 до 210.
k = 0
! Работа с k в трёх местах!
N = 1
Идея: собрать всё вместе.
while k <= 10 :
print(N)
N = N*2
не включая 11!
с нуля!
k = k + 1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
N = 1
for k in range(11)
range(11):
print(N)
N = N*2
сделать 11 раз
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

40. Цикл по переменной

Программирование (Python), 8 класс
40
Цикл по переменной
for k in range(11):
print(k)
? Что выведет?
for k in [0,1,2,3,4,5,6,7,8,9,10]:
print(k)
0
1
2

10
Начать на с 0, а с 1:
for k in [1,2,3,4,5,6,7,8,9,10]:
print(k)
начальное
значение
for k in range( 1 ,11):
print(k)
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

41. Цикл по переменной

Программирование (Python), 8 класс
41
Цикл по переменной
Задача. Найти сумму чисел от 1 до 1000.
S = 0
for i in range(1,1001):
S += i
Задача. Вывести квадраты чисел от 10 до 1 по убыванию.
for k in [10,9,8,7,6,5,4,3,2,1]:
print(k*k)
не включая 0
шаг
for k in range(10,0,–1):
print(k*k)
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

42. Цикл по переменной

Программирование (Python), 8 класс
42
Цикл по переменной
Задача. Найти сумму чётных чисел от 2 до 1000.
S = 0
for i in range(2,1001):
if i % 2 == 0:
S += i
? Что плохо?
шаг
S = 0
for i in range(2,1001, 2 ):
S += i
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

43. В других языках программирования

Программирование (Python), 8 класс
43
В других языках программирования
Паскаль:
С:
S:= 0;
for i=1 to 1000 do
S:= S + i;
int S, i;
S = 0;
for (i=1; i<=1000; i++)
S += i;
i=i+1;
шаг только 1 или
–1 (downto)
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
S=S+i;
http://kpolyakov.spb.ru

44. Задачи

Программирование (Python), 8 класс
44
Задачи
«A»: Напишите программу, которая находит количество
четырёхзначных чисел, которые делятся на 7.
«B»: Ипполит задумал трёхзначное число, которое при
делении на 15 даёт в остатке 11, а при делении на
11 даёт в остатке 9. Напишите программу, которая
находит все такие числа.
«C»: С клавиатуры вводится натуральное число N.
Программа должна найти факториал этого числа
(обозначается как N!) – произведение всех
натуральных чисел от 1 до N. Например,
5! = 1 • 2 • 3 • 4 • 5 = 120.
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

45. Задачи

Программирование (Python), 8 класс
45
Задачи
«D»: Натуральное число называется числом
Армстронга, если сумма цифр числа, возведенных
в N-ную степень (где N – количество цифр в числе)
равна самому числу. Например, 153 = 13 + 53 + 33.
Найдите все трёхзначные Армстронга.
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

46. Проверка числа на простоту

Программирование (Python), 8 класс
46
Проверка числа на простоту
Задача. Ввести натуральное число N и проверить,
является ли оно простым.
? Что такое простое число?
проверять все
? Как проверить?
от 2 до N-1
26: делится на 2? да составное
27: делится на 2? нет
делится на 3? да составное
29: делится на 2? нет
делится на 3? нет
простое

делится на 28? нет
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

47. Проверка числа на простоту

Программирование (Python), 8 класс
47
Проверка числа на простоту
N = int(input("Введите число:"))
count = 0
от 2 до N-1
for i in range(2,N):
if N % i == 0:
? Как определить,
count += 1
что простое?
if count == 0:
print( f"{N} – простое" )
else:
print( f"{N} – составное" )
? Как ускорить?
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

48. Проверка числа на простоту

Программирование (Python), 8 класс
48
Проверка числа на простоту
N = int(input("Введите число:"))
count = 0
от 2 до N-1
for i in range(2,N):
if N % i == 0:
count += 1
break
выход из цикла
if count == 0:
print( f"{N} – простое" )
else:
print( f"{N} – составное" )
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

49. Если искать все делители…

Программирование (Python), 8 класс
49
Если искать все делители…
N = int(input("Введите число:"))
count = 0
от 1 до N
for i in range (1,N+1)
(1,N+1):
if N % i == 0:
count += 1
2
if count == ???:
print( f"{N} – простое" )
else:
print( f"{N} – составное" )
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

50. Задачи

Программирование (Python), 8 класс
50
Задачи
«A»: Напишите программу, которая получает
натуральное число и определяет, простое ли это
число. Если число составное, программа должна
вывести количество его делителей.
Пример 1:
Введите число: 19
19 – простое число
Пример 2:
Введите число: 28
28 – составное число
делителей: 6
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

51. Задачи

Программирование (Python), 8 класс
51
Задачи
«B»: Напишите программу, которая получает
натуральное число и определяет, простое ли это
число. Если число составное, программа должна
вывести количество его чётных делителей.
Подсказка: нужен ещё один счётчик.
Пример 1:
Введите число: 19
19 – простое число
Пример 3:
Введите число: 1260
Пример 2:
Введите число: 28
1260 – составное число
28 – составное число
четных делителей: 24
четных делителей: 4
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru

52. Задачи

Программирование (Python), 8 класс
52
Задачи
«С»: Напишите программу, которая получает
натуральные числа a и b и определяет, сколько
простых чисел есть на отрезке [a, b].
Пример 1:
Введите a и b: 5 23
Простых чисел: 7
Пример 2:
Введите a и b: 5 5
Простых чисел: 1
Пример 3:
Введите a и b: 1234 5678
Простых чисел: 545
К.Ю. Поляков, Е.А. Ерёмин, 2018-2024
http://kpolyakov.spb.ru
English     Русский Rules