Вложенные циклы python задачи

Решение модуля 5.6 Инди-курс программирования на Python

Ниже представлены примеры задач с решением на тему Вложенные циклы.

Найдите сумму всех четырехзначных чисел, сумма цифр каждого из которых равна 20.

sum = 0 for i in range(1000, 10000): if sum(map(int, str(i))) == 20: sum += i print(sum) Ответ: 3489675

В этой задаче вам предстоит построить лесенку из чисел. Программа принимает на вход целое положительное число n (n <=15) — количество уровней, ваша задача вывести n уровней, в каждом из которых стоят числа от 1 до значения уровня.

a = int(input()) # получаем число строк for i in range(a): # цикл до числа строк for j in range(i + 1): # в первой строке будут 1 число во второй 2 и т.д print(j + 1, end=' ') print()

Постулат Бертрана (теорема Бертрана-Чебышева, теорема Чебышева) гласит, что для любого n > 1 найдется простое число p в интервале n < p < 2n. Такая гипотеза была выдвинута в 1845 году французским математиком Джозефем Бертраном (проверившим ее до n=3000000) и доказана в 1850 году Пафнутием Чебышевым. Рамануджан в 1920 году нашел более простое доказательство, а Эрдеш в 1932 – еще более простое.

Ваша задача состоит в том, чтобы решить несколько более общую задачу – а именно по числу n найти количество простых чисел p из интервала n < p < 2n.

Напомним, что число называется простым, если оно делится только само на себя и на единицу.

Входные данные

Программа принимает на вход целое число n (2 ≤ n ≤ 50000).

Выходные данные

Вам необходимо вывести на экран одно число – количество простых чисел p на интервале n < p < 2n.

n = int(input()) count_numbers = 0 # счетчик простых целых чисел dividers = 0 # счетчик делителей for p in range(n + 1, 2 * n): # цикл перебора чисел p в промежутке n < p < 2 * n for k in range(2, int(p ** 0.5) + 1): # делители от 2 до квадратного корня (целое число) - середина диапазона if p % k == 0: # если наше число делится без остатка dividers += 1 # увеличить количество разделителей break if dividers == 0: # если количество делителей равно 0 count_numbers += 1 # увеличить количество простых чисел dividers = 0 # сброс счетчика делителей print(count_numbers) # вывести количество простых целых чисел

Фурик очень любит уроки математики, поэтому, в отличие от Рубика, он их не посещает. Но теперь Фурик хочет получить хорошую оценку по математике. Для этого Лариса Ивановна, учительница математики, дала ему новое задание. Фурик сразу же решил эту задачу, а вы сможете?
Задана система уравнений:

Нужно посчитать количество пар целых чисел (a, b) (0 ≤ a, b), которые удовлетворяют системе.

n, m = map(int, input().split()) count = 0 for a in range(n+1): for b in range(m+1): if a + b ** 2 == m and a ** 2 + b == n: count += 1 print(count)

Напишите программу для построения горизонтальных столбчатых диаграмм с помощью символа звёздочки.

Формат ввода

Несколько натуральных чисел на одной строке.

Формат вывода

Несколько чисел на одной строке.

s = input().split() for i in s: # цикл по списку чисел for j in range(int(i)): # в цикле печатаем нужное кол-во * print('*',end='') print() # переход на новую строку 

Сортировка пузырьком

Все просто, вам поступает число n — количество элементов в списке, и затем сам список.

Ваша задача отсортировать список по возрастанию при помощи пузырьковой сортировки, в случае если элементы соседние совпадают менять их ненужно.

В качестве ответа нужно вывести отсортированный список и какое количество раз пришлось переставлять элементы в процессе сортировки

n = int(input()) l = list(map(int, input().split())) cnt = 0 # счетчик перестановок for i in range(0, n - 1): flag = False # Истина, если были перестановки. # Ложь - массив отсортирован, можно выходить из цикла for j in range(n - i - 1): if l[j] > l[j + 1]: # если предыдущее число больше следующего, то надо переместить l[j], l[j + 1] = l[j + 1], l[j] # перемешаем значения cnt += 1 # плюсуем счетчик flag = True if not flag: break print(*l, '\n'+str(cnt))

Сортировка вставками

Программа получает на вход число n — количество элементов в списке, и затем в следующей строке сам список.

Ваша задача отсортировать список по возрастанию при помощи сортировки вставками, в случае если элементы соседние совпадают менять их ненужно.

В качестве ответа нужно вывести отсортированный список.

n = int(input()) # Длина массива чисел s = list(map(int, input().split())) # Массив чисел for i in range(n): # Проходим по массиву n раз for j in range(i,0,-1): if s[j]

Источник

Вложенные циклы python задачи

11.1.2.7 использовать вложенные циклы при решении проблем
11.1.2.6 выполнять отладку программы

Python. Вложенные циклы

Вложенный цикл - цикл который выполняется внутри другого цикла.
Обычно вложенные циклы используются для работы с двумя измерениями, например, для печати звездочек в строках и столбцах, как показано ниже.

При каждой итерации внешнего цикла внутренний цикл будет выполнен полностью. Внутренний цикл должен завершить все свои итерации, прежде чем внешний цикл сможет перейти к следующей итерации.

Трассировка вложенных циклов

Задача 1. Вывести звёздочки в следующем виде.

n = int(input())
m = int(input())
for i in range( n ):
for j in range( m ): # вложенный цикл
print('*', end='')
print()

Задача 2. Вывести в строку таблицу умножения числа n. (n < 10)

k = int(input())
for i in range(1, 10):
print( i , '*', k , '=', k * i , sep='', end='\t')

1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 6*5=30 7*5=35 8*5=40 9*5=45

Задача 3. Вывести таблицу умножения по следующему шаблону.

for i in range(1, 10): # начало внешнего цикла
for j in range(1, 10): # начало вложенного цикла
print(i, '*', j, '=', i * j, end='\t’) # вывод таблицы умножения
print() # переход на новую строку

Задача 3. Второй вариант решения

i = 1 # инициализация параметра внешнего цикла
while i < 10: # условие внешнего цикла
j = 1 # инициализация параметра вложенного цикла
while j < 10: # условие вложенного цикла
print(i, '*', j, '=', i * j, end='\t') # вывод
j += 1 # изменение параметра вложенного цикла
i += 1 # изменение параметра внешнего цикла
print() # переход на новую строку

Команды break и continue во вложенных циклах.

while True: # начало внешнего цикла
while True: # начало вложенного цикла
if [condition]:
continue # переход к следующей итерации во вложенном цикле
if [condition]:
break # выход из вложенного цикла
if [condition]:
continue # переход к следующей итерации во внешнем цикле
if [condition]:
break # выход из внешнего цикла

Упр. 1 Написать программу для вывода узора по образцу, используя вложенный цикл.

Образец:

Упр. 2 Совершенным числом называется целое положительное число, равное сумме своих положительных делителей, исключая само число. Например, 6 имеет делители 1, 2 и 3 (исключая само себя), а 1 + 2 + 3 = 6, поэтому 6 — совершенное число.
Напишите программу, которая выводит все совершенные числа от 1 до 100.

Источник

Читайте также:  Php preg match utf8
Оцените статью