1) Запишите функцию, которая выводит 3 заданных числа в порядке возрастания.
2) Запишите функцию, которая находит наибольший общий делитель двух натуральных чисел.
3) даны два натуральных числа. Создайте программу, которая определит, в каком из них: а) много цифр; б) большая сумма цифр.
4) даны стороны двух треугольников. Составьте программу для нахождения суммы их: а) периметров; б) площадей.
Ответы на вопрос
# 1)
def increase(a, b, c):
# быстро можно записать так:
print('\n'.join(sorted((a, b, c))))
# 2)
def gcd(a, b):
if a > b: a, b = b, a
while b > 0: a, b = b, a%b
return a
# Но в math есть функция gcd, которой конечно лучше пользоваться, она быстрее.
# 3)
def main(a, b):
str_a = str(a)
str_b = str(b)
sum_n_a = sum([int(n) for n in str_a])
sum_n_b = sum([int(n) for n in str_b])
len_n_a = len(str_a)
len_n_b = len(str_b)
if len_n_a > len_n_b:
print('По количеству цифр побеждает a =', a)
else:
print('По количеству цифр побеждает b =', b)
if sum_n_a > sum_n_b:
print('По сумме цифр побеждает a =', a)
else:
print('По сумме цифр побеждает b =', b)
# 4)
from math import sqrt
def sum_P_S(a1, b1, c1, a2, b2, c2):
P1 = a1+b1+c1
p1 = P1/2
S1 = sqrt(p1 * (p1-a1) * (p1-b1) * (p1-c1))
P2 = a2+b2+c2
p2 = P2/2
S2 = sqrt(p2 * (p2-a2) * (p2-b2) * (p2-c2))
print('P1+P2 =', P1+P2)
print('S1+S2 =', S1+S2)