Алгоритмы (Python): различия между версиями

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску
 
(не показано 10 промежуточных версий этого же участника)
Строка 69: Строка 69:
 
     print(x)
 
     print(x)
 
     x += 5
 
     x += 5
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Вывод n первых чисел Фибоначчи ===
 
=== Вывод n первых чисел Фибоначчи ===
 
<syntaxhighlight lang="python" line>
 
<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>
 
</syntaxhighlight>
  
 
=== Найти НОД(A,B), используя алгоритм Евклида: ===
 
=== Найти НОД(A,B), используя алгоритм Евклида: ===
 
<syntaxhighlight lang="python" line>
 
<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>
 
</syntaxhighlight>
  
 
=== Найти сумму цифр целого числа m ===
 
=== Найти сумму цифр целого числа m ===
 
<syntaxhighlight lang="python" line>
 
<syntaxhighlight lang="python" line>
 +
m = int(input("Введите число m: "))
  
 +
n = m
 +
sum = 0
 +
while n:
 +
    sum += n % 10
 +
    n //= 10
 +
 +
print(f"Сумма цифр числа {m} = {sum}")
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Найти max из введенных чисел ===
 
=== Найти max из введенных чисел ===
 
<syntaxhighlight lang="python" line>
 
<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>
 
</syntaxhighlight>
  
 
=== Найти min, удовлетворяющее условию p(x) ===
 
=== Найти min, удовлетворяющее условию p(x) ===
 
<syntaxhighlight lang="python" line>
 
<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>
 
</syntaxhighlight>
  
 
=== Есть ли среди введенных число k? ===
 
=== Есть ли среди введенных число k? ===
 
<syntaxhighlight lang="python" line>
 
<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>
 
</syntaxhighlight>
  
 
=== Является ли число N>1 простым? ===
 
=== Является ли число N>1 простым? ===
 
<syntaxhighlight lang="python" line>
 
<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>
  
 
=== Разложение числа на простые множители ===
 
=== Разложение числа на простые множители ===
 
<syntaxhighlight lang="python" line>
 
<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>
 
</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