Программирование на языке Python
Логические функции
Логические функции
Функция: простое число или нет?
Функция: простое число или нет?
Функция: простое число или нет?
Логические функции: использование
Задачи
Задачи
Задачи
295.00K
Category: programmingprogramming

Функции. Логические функции

1. Программирование на языке Python

1
Программирование
на языке Python
§ 60. Функции
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

2. Логические функции

Алгоритмы и программирование, язык Python, 10 класс
2
Логические функции
Логическая функция – это функция, возвращающая
логическое значение (True/False).
def even(n):
if n % 2 == 0:
return True
else:
return False
def even(n):
return (n % 2 == 0)
k = int( input() )
if even( k ):
print( "Число", k, "чётное." )
else:
print( "Число", k, "нечётное." )
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

3. Логические функции

Алгоритмы и программирование, язык Python, 10 класс
3
Логические функции
Задача. Найти все простые числа в диапазоне
от 2 до 1000.
for i in range(2,1001):
if i
isPrime(i)
- простое :
print ( i )
функция,
возвращающая
логическое значение
(True/False)
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

4. Функция: простое число или нет?

Алгоритмы и программирование, язык Python, 10 класс
4
Функция: простое число или нет?
def isPrime ( n ):
for d in range(2,n):
if n % d == 0:
return False
return True
нет ни одного
? Что плохо?
К.Ю. Поляков, Е.А. Ерёмин, 2018
делителя
http://kpolyakov.spb.ru

5. Функция: простое число или нет?

Алгоритмы и программирование, язык Python, 10 класс
5
Функция: простое число или нет?
n a b, a b a n
Пусть a n Тогда b n a b n .
! Перебор до квадратного корня!
def isPrime ( n ):
for d in range(2, round(n**0.5)+1
round(n**0.5)+1 ):
if n % d == 0:
return False
return True
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

6. Функция: простое число или нет?

Алгоритмы и программирование, язык Python, 10 класс
6
Функция: простое число или нет?
! Только с целыми числами!
d n d d n
def isPrime ( n ):
d=2
while d*d <= n and n % d != 0:
d += 1
if d*d > n:
return (d*d > n)
return True
else:
return False
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

7. Логические функции: использование

Алгоритмы и программирование, язык Python, 10 класс
7
Логические функции: использование
! Функция, возвращающая логическое значение,
может использоваться везде, где и логическая
величина!
n = int ( input() )
while isPrime(n):
print ( n, "– простое число" )
n = int ( input() )
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

8. Задачи

Алгоритмы и программирование, язык Python, 10 класс
8
Задачи
«A»: Напишите логическую функцию, которая
определяет, является ли переданное ей число
совершенным, то есть, равно ли оно сумме своих
делителей, меньших его самого.
Пример:
Введите натуральное число:
28
Число 28 совершенное.
Пример:
Введите натуральное число:
29
Число 29 не совершенное.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

9. Задачи

Алгоритмы и программирование, язык Python, 10 класс
9
Задачи
«B»: Напишите логическую функцию, которая
определяет, являются ли два переданные ей числа
взаимно простыми, то есть, не имеющими общих
делителей, кроме 1.
Пример:
Введите два натуральных числа:
28 15
Числа 28 и 15 взаимно простые.
Пример:
Введите два натуральных числа:
28 16
Числа 28 и 16 не взаимно простые.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

10. Задачи

Алгоритмы и программирование, язык Python, 10 класс
10
Задачи
«С»: Простое число называется гиперпростым, если любое
число, получающееся из него откидыванием нескольких
последних цифр, тоже является простым. Например,
число 733 – гиперпростое, так как и оно само, и числа 73
и 7 – простые. Напишите логическую функцию, которая
определяет, верно ли, что переданное ей число –
гиперпростое. Используйте уже готовую функцию
isPrime, которая приведена в учебнике.
Пример:
Введите натуральное число:
733
Число 733 гиперпростое.
Пример:
Введите натуральное число:
19
Число 19 не гиперпростое.
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru
English     Русский Rules