Циклы «for» и «while». Вложенные циклы. Часть 1

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

 Установите в каком порядке, указанный вложенный цикл выведет пары чисел (i, j):

for i in range(1, 4):
    for j in range(3, 6):
        print(i, j)

 Ответ: 1 3; 1 4; 1 5; 2 3; 2 4; 2 5; 3 3; 3 4; 3 5

 Что покажет приведенный ниже фрагмент кода?:

for i in range(1, 4):
    for j in range(3, 5):
        print(i + j, end='')

 Ответ: 455667

 Что покажет приведенный ниже фрагмент кода?:

counter = 0
for i in range(99, 102): temp = i while temp > 0: counter += 1 temp //= 10
print(counter)

 Ответ: 8

 Дано натуральное число n  (n ≤  9)). Напишите программу, которая печатает таблицу размером n × 3, состоящую из данного числа (числа отделены одним пробелом).

a = int(input())

for i in range(a):
    for j in range(3):
        print(a, end=' ')
    print() 

 Дано натуральное число n  (n ≤ 9). Напишите программу, которая печатает таблицу размером n × 5, где в i-ой строке указано число i (числа отделены одним пробелом).

a = int(input())

for i in range(1,a + 1):
    for _ in range(5):
        print(i, end=' ')
    print()

 Дано натуральное число n  (n ≤ 9). Напишите программу, которая печатает таблицу сложения для всех чисел от 1 до n (включительно) в соответствии с примером.

a = int(input())

for i in range(1, a + 1):
    for j in range(1, 10):
        s = i + j
        print(i, '+', j, '=', s)
    print()    

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

a = int(input())
s = a // 2 + 1

for i in range(s):
    for j in range(i + 1):
        print('*', end='')
    print()    

for i in range(s):
    for j in range((s-1)-i):
        print('*', end='')
    print()

 Дано натуральное число n. Напишите программу, которая печатает численный треугольник в соответствии с примером:

1
22
333
4444
55555
...
a = int(input())

for i in range(1, a+1):
    for _ in range(i):
        print(i, end='')
    print()    

 Решите уравнение в натуральных числах 28n + 30k + 31m = 365.

for i in range(1, 14):
    for j in range(1, 13):
        for k in range(1, 12):
            if 28 * i + 30 * j + 31 * k == 365:
                print("Натуральные решения уравнения:", "i =", i, "j =", j, "k =", k)

 Ответ: n =1; k =4; m =7 или n =2; k = 1; m =9

 Имеется 100 рублей. Сколько быков, коров и телят можно купить на все эти деньги, если плата за быка – 10 рублей, за корову – 5 рублей, за теленка – 0.5 рубля и надо купить 100 голов скота?

 Ответ: Количество быков:1; Количество коров:9; Количество телят:90

for i in range(1, 10):
    for j in range(1, 20):
        for k in range(1, 200):
            if 10 * i + 5 * j + (5 * k)/10 == 100 and (i + j + k) == 100:
                print('i =', i, 'j =', j, 'k =', k)

 В 1769 году Леонард Эйлер сформулировал обобщенную версию Великой теоремы Ферма, предполагая, что по крайней мере n энных степеней необходимо для получения суммы, которая сама является энной степенью для n > 2. Напишите программу для опровержения гипотезы Эйлера (продержавшейся до 1967 года) и найдите четыре положительных целых числа, сумма 5-х степеней которых равна 5-й степени другого положительного целого числа.

 Ответ: 498

for a in range(1, 151):
    for b in range(a, 151):
        for c in range(b, 151):
            for d in range(c, 151):
                sum = a ** 5 + b ** 5 + c ** 5 + d ** 5
                e = int(sum ** (1/5))
                if sum == e ** 5:
                    print(a, b, c, d, e)
                    print(a + b + c + d + e)
                    break