Алгоритмы (Python): различия между версиями
Перейти к навигации
Перейти к поиску
(Новая страница: «== Алгоритмы == * [http://pascalabc.net/wiki/index.php?title=%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B_%D0%B4%D0%BB%D1%8F_%D1%81%D1%82%D1%83...») |
|||
(не показано 17 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | == | + | {{TOCRight}} |
− | * | + | == Код программ == |
+ | === Сумма вводимых целых чисел === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | count = int(input('Введите число слагаемых: ')) | ||
+ | |||
+ | sum = 0 | ||
+ | for i in range(1, count + 1): | ||
+ | x = int(input(f'Введите число № {i}: ')) | ||
+ | sum += x | ||
+ | |||
+ | print(f"Сумма = {sum}") | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Произведение целых чисел === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | count = int(input('Введите число множителей: ')) | ||
+ | |||
+ | product = 1 | ||
+ | for i in range(1, count + 1): | ||
+ | x = int(input(f'Введите число № {i}: ')) | ||
+ | product *= x | ||
+ | |||
+ | print(f"Произведение = {product}") | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Сколько нечетных среди n введенных === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | n = int(input('Введите количество чисел: ')) | ||
+ | |||
+ | count = 0 | ||
+ | for i in range(1, n + 1): | ||
+ | x = int(input(f'Введите число № {i}: ')) | ||
+ | if x % 2 == 1: | ||
+ | count += 1 | ||
+ | |||
+ | print(f"Количество нечётных чисел = {count}") | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Защита от неверного ввода === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | x = int(input("Введите x>0: ")) | ||
+ | |||
+ | while x <= 0: | ||
+ | print("Неверный ввод: ") | ||
+ | x = int(input("Введите x>0: ")) | ||
+ | |||
+ | print(f"x = {x}") | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Вывод 10 первых степеней двойки === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | x = 2 | ||
+ | n = 10 | ||
+ | |||
+ | for i in range(1, n+1): | ||
+ | print(f"2 ** {i} = {x}") | ||
+ | x *= 2 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Вывод всех двухзначных чисел, кратных 5 === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | x = 10 | ||
+ | |||
+ | while x < 100: | ||
+ | print(x) | ||
+ | x += 5 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Вывод n первых чисел Фибоначчи === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | n = int(input("Введите число n: ")) | ||
+ | |||
+ | (a, b) = (0, 1) | ||
+ | print(a, b, end=' ') | ||
+ | |||
+ | for i in range(n-2): | ||
+ | (a, b) = (b, a+b) | ||
+ | print(b, end=' ') | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Найти НОД(A,B), используя алгоритм Евклида: === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | a = int(input("Введите число a: ")) | ||
+ | b = int(input("Введите число b: ")) | ||
+ | |||
+ | while b !=0: | ||
+ | (a, b) = (b, a % b) | ||
+ | |||
+ | print(f"НОД(a, b) = {a}") | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Найти сумму цифр целого числа m === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | m = int(input("Введите число m: ")) | ||
+ | |||
+ | n = m | ||
+ | sum = 0 | ||
+ | while n: | ||
+ | sum += n % 10 | ||
+ | n //= 10 | ||
+ | |||
+ | print(f"Сумма цифр числа {m} = {sum}") | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Найти max из введенных чисел === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | count = int(input('Введите количество чисел: ')) | ||
+ | |||
+ | maximum = 0 | ||
+ | for i in range(1, count + 1): | ||
+ | x = int(input(f'Введите число № {i}: ')) | ||
+ | if i == 1: | ||
+ | maximum = x | ||
+ | elif x > maximum: | ||
+ | maximum = x | ||
+ | |||
+ | print(f"max = {maximum}") | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Найти min, удовлетворяющее условию p(x) === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | def p(x): | ||
+ | return x > 0 | ||
+ | |||
+ | |||
+ | count = int(input('Введите количество чисел: ')) | ||
+ | found = False | ||
+ | minimum = 0 | ||
+ | for i in range(1, count + 1): | ||
+ | x = int(input(f'Введите число № {i}: ')) | ||
+ | if (found == false) and (p(x)): | ||
+ | minimum = x | ||
+ | found = True | ||
+ | elif (x < minimum) and (p(x)): | ||
+ | minimum = x | ||
+ | |||
+ | print(f"min = {minimum}") | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Есть ли среди введенных число k? === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | count = int(input('Введите количество чисел: ')) | ||
+ | needle = int(input('Введите число для поиска: ')) | ||
+ | found = False | ||
+ | |||
+ | minimum = 0 | ||
+ | for i in range(1, count + 1): | ||
+ | x = int(input(f'Введите число № {i}: ')) | ||
+ | if x == needle: | ||
+ | found = True | ||
+ | break | ||
+ | if found: | ||
+ | print(f"Число {needle} было введено.") | ||
+ | else: | ||
+ | print(f"Число {needle} не было введено.") | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Является ли число N>1 простым? === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | import math | ||
+ | |||
+ | n = int(input('Введите число n: ')) | ||
+ | |||
+ | isPrime = True | ||
+ | for i in range(2, math.floor(math.sqrt(n)) + 1): | ||
+ | if n % i == 0: | ||
+ | isPrime = False | ||
+ | break | ||
+ | |||
+ | if isPrime: | ||
+ | print(f"Число {n} является простым.") | ||
+ | else: | ||
+ | print(f"Число {n} является составным.") | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Разложение числа на простые множители === | ||
+ | <syntaxhighlight lang="python" line> | ||
+ | x = int(input('Введите число x: ')) | ||
+ | |||
+ | i = 2 | ||
+ | print(f"{x} = 1", end='') | ||
+ | |||
+ | while x != 1: | ||
+ | if x % i == 0: | ||
+ | print(f" * {i}", end='') | ||
+ | x = x / i | ||
+ | else: | ||
+ | i += 1 | ||
+ | </syntaxhighlight> |
Текущая версия на 15:13, 27 июня 2021
Код программ
Сумма вводимых целых чисел
1 count = int(input('Введите число слагаемых: '))
2
3 sum = 0
4 for i in range(1, count + 1):
5 x = int(input(f'Введите число № {i}: '))
6 sum += x
7
8 print(f"Сумма = {sum}")
Произведение целых чисел
1 count = int(input('Введите число множителей: '))
2
3 product = 1
4 for i in range(1, count + 1):
5 x = int(input(f'Введите число № {i}: '))
6 product *= x
7
8 print(f"Произведение = {product}")
Сколько нечетных среди n введенных
1 n = int(input('Введите количество чисел: '))
2
3 count = 0
4 for i in range(1, n + 1):
5 x = int(input(f'Введите число № {i}: '))
6 if x % 2 == 1:
7 count += 1
8
9 print(f"Количество нечётных чисел = {count}")
Защита от неверного ввода
1 x = int(input("Введите x>0: "))
2
3 while x <= 0:
4 print("Неверный ввод: ")
5 x = int(input("Введите x>0: "))
6
7 print(f"x = {x}")
Вывод 10 первых степеней двойки
1 x = 2
2 n = 10
3
4 for i in range(1, n+1):
5 print(f"2 ** {i} = {x}")
6 x *= 2
Вывод всех двухзначных чисел, кратных 5
1 x = 10
2
3 while x < 100:
4 print(x)
5 x += 5
Вывод n первых чисел Фибоначчи
1 n = int(input("Введите число n: "))
2
3 (a, b) = (0, 1)
4 print(a, b, end=' ')
5
6 for i in range(n-2):
7 (a, b) = (b, a+b)
8 print(b, end=' ')
Найти НОД(A,B), используя алгоритм Евклида:
1 a = int(input("Введите число a: "))
2 b = int(input("Введите число b: "))
3
4 while b !=0:
5 (a, b) = (b, a % b)
6
7 print(f"НОД(a, b) = {a}")
Найти сумму цифр целого числа m
1 m = int(input("Введите число m: "))
2
3 n = m
4 sum = 0
5 while n:
6 sum += n % 10
7 n //= 10
8
9 print(f"Сумма цифр числа {m} = {sum}")
Найти max из введенных чисел
1 count = int(input('Введите количество чисел: '))
2
3 maximum = 0
4 for i in range(1, count + 1):
5 x = int(input(f'Введите число № {i}: '))
6 if i == 1:
7 maximum = x
8 elif x > maximum:
9 maximum = x
10
11 print(f"max = {maximum}")
Найти min, удовлетворяющее условию p(x)
1 def p(x):
2 return x > 0
3
4
5 count = int(input('Введите количество чисел: '))
6 found = False
7 minimum = 0
8 for i in range(1, count + 1):
9 x = int(input(f'Введите число № {i}: '))
10 if (found == false) and (p(x)):
11 minimum = x
12 found = True
13 elif (x < minimum) and (p(x)):
14 minimum = x
15
16 print(f"min = {minimum}")
Есть ли среди введенных число k?
1 count = int(input('Введите количество чисел: '))
2 needle = int(input('Введите число для поиска: '))
3 found = False
4
5 minimum = 0
6 for i in range(1, count + 1):
7 x = int(input(f'Введите число № {i}: '))
8 if x == needle:
9 found = True
10 break
11 if found:
12 print(f"Число {needle} было введено.")
13 else:
14 print(f"Число {needle} не было введено.")
Является ли число N>1 простым?
1 import math
2
3 n = int(input('Введите число n: '))
4
5 isPrime = True
6 for i in range(2, math.floor(math.sqrt(n)) + 1):
7 if n % i == 0:
8 isPrime = False
9 break
10
11 if isPrime:
12 print(f"Число {n} является простым.")
13 else:
14 print(f"Число {n} является составным.")
Разложение числа на простые множители
1 x = int(input('Введите число x: '))
2
3 i = 2
4 print(f"{x} = 1", end='')
5
6 while x != 1:
7 if x % i == 0:
8 print(f" * {i}", end='')
9 x = x / i
10 else:
11 i += 1