Top.Mail.Ru
Ответы

ПОМОГИТЕ СРОЧНО!! ПРОГРАММА НА ПИТОН

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

Гипотеза Коллатца состоит в том, что если мы возьмём любое натуральное число и:

поделим его пополам, если оно чётное; умножим на три и прибавим один, если нечётное;

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

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

По дате
По рейтингу
Аватар пользователя
Мудрец
1234567891011121314151617181920212223242526
 n=int(input()) 
 
m=int(input())  
 
for x in range(n,m+1): 
  t=x 
  Mx=x
  A=[x] 
  steps=0 
  while t>1: 
    steps+=1 
    if t%2==0: 
      t=t//2 
    else: 
      t=t*3+1 
      if t>Mx: 
        Mx=t 
    if t in A: 
      break 
    A.append(t) 
  if t>1: 
    print("Гипотеза не верна для x=",x) 
    break 
  print("x=",x,", число шагов: ",steps, ", максимальное число: ", Mx)