Розв'язування задач
Задача 1
Вивести на екран таблицю значень функції y = -3x**2 - 4x + 20 на вказаному
проміжку із вказаним кроком зміни х
# Програма 1
x1 = float(input("Точка початку відрізка х1: " ))
x2 = float(input("Точка кінця відрізка х2: " ))
step = float(input("Крок зміни х step: " ))
if x1 > x2:
x1, x2 = x2, x1
print("Функция: y = -3x**2 - 4x + 20")
print(" x y")
while x1 <= x2:
y = -3*x1**2 - 4*x1 + 20
print('%5.2f | %7.2f' % (x1, y))
x1 += step
Задача 2.
Перевірка простоти числа перебором подільників
Перебір дільників - це алгоритм, який використовується для визначення, чи є натуральне число простим, або воно є складним, тобто складовим.
Прості числа - це натуральні числа більше одиниці, які діляться без остачі тільки на одиницю і на себе. Наприклад, число 3 просте, так як без остачі ділиться тільки на 1 і 3. Число 4 складне, тому що без остачі ділиться не тільки на 1 і 4, але також на число 2.
Алгоритм перебору дільників полягає в послідовному розподілі заданого натурального числа на всі цілі числа, починаючи з двійки і закінчуючи значенням меншим або рівним квадратному кореню з тестованого числа.
Якщо хоча б один дільник ділить досліджуване число без залишку, то це число є складовим. Якщо жодного такого дільника не знаходиться, то число визнається простим.
import math
n = int (input ())
if n <2:
print ("Число повинно бути більше 1")
quit ()
elif n == 2:
print ( "Це просте число")
quit ()
i = 2 # перший дільник
limit = int (math.sqrt (n))
while i <= limit:
if n% i == 0:
print ( "Це складне число")
quit () # вихід з програми
i + = 1 # перехід до наступного дільника
print ( "Це просте число")
Число 2 є простим, але при цьому воно ділиться на 2. Цикл while визначив би двійку як складене число, що неправильно. Тому для числа 2 необхідна окрема перевірка.
Програма дійде до останнього рядка коду, тільки якщо не був знайдений жоден дільник. Якщо це так, значить число складене.
Приклад функції, що визначає чи є число простим:
# Програма 3
def is_prime (n):
if n <2:
return False
if n == 2:
return True
limit = sqrt (n)
i = 2
while i <= limit:
if n% i == 0:
return False
i + = 1
return True
for i in range (3):
num = int (input ())
print (is_prime (num))
Приклад виконання:
17
True
57
False
103
True
Комментариев нет:
Отправить комментарий