Вопрос задан 20.02.2019 в 15:51. Предмет Информатика. Спрашивает Яровой Дмитрий.

Помогите решить на Питоне задачи, пожалуйста, в интернете все решения неправильные!!! Даю 34 балла.

1) Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Операцией возведения в степень пользоваться нельзя! 2)Дано натуральное число n>1. Выведите его наименьший делитель, отличный от 1. Решение оформите в виде функции MinDivisor(n). Алгоритм должен иметь сложность O(корень из n) . Указание. Если у числа n нет делителя не превосходящего корень из n , то число n — простое и ответом будет само число n. 3) Последовательность Фибоначчи это последовательность типа Xn = Xn – 1 + Xn – 2 , n > 2, n - номер числа в последовательности. Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n, что Xn=A. Если А не является числом Фибоначчи, выведите число -1. 4) Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности, то есть элемента, который будет наибольшим, если из последовательности удалить наибольший элемент. Входные данные Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, а служит как признак ее окончания). Выходные данные Выведите ответ на задачу.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Антонюк Марина.
1.
N=int(input())
s=2
flag=False
for i in range(N):
      if N=s:
           flag=True
           break
      else:
           s*=2
if flag:
    print('Yes')
else:
    print('No')

2.
n=int(input())
def MinDivisor(n):
     nod=-1
     for i in range(n-1):
          if n%i=0:
              return i
              break

if MinDivision(n)==-1:
    print(n,' число является простым.')
else:
    print(MinDivision(n))

3.
A=int(input())
x=x1=1
s=0
while x1<A+2:
   b=x
   x=x1
   x1+=b
   s+=1
if x1==A:
    print(s)
else:
    print(-1)

4. 
a=[]
while 1:
   s=int(input())
   if s==0:
       break
   a.append(s)
a.sort()
print(a[-2])



0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

1) Задача: Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Операцией возведения в степень пользоваться нельзя!

Решение: Для того чтобы число N было точной степенью двойки, оно должно быть положительным и иметь только одну единичную цифру в двоичном представлении. Для проверки этого условия, мы можем использовать битовые операции. Если число N & (N - 1) равно 0, то N является точной степенью двойки.

Вот решение на языке Python:

```python def is_power_of_two(n): if n <= 0: return False return n & (n - 1) == 0

N = int(input("Введите число N: ")) if is_power_of_two(N): print("YES") else: print("NO") ```

2) Задача: Дано натуральное число n > 1. Выведите его наименьший делитель, отличный от 1. Решение оформите в виде функции MinDivisor(n). Алгоритм должен иметь сложность O(корень из n).

Решение: Для нахождения наименьшего делителя числа n, мы можем перебирать числа от 2 до корня из n и проверять, делится ли n на них без остатка. Если находим делитель, то возвращаем его значение.

Вот решение на языке Python:

```python import math

def MinDivisor(n): if n <= 1: return None for i in range(2, int(math.sqrt(n)) + 1): if n % i == 0: return i return n

n = int(input("Введите число n: ")) divisor = MinDivisor(n) if divisor: print("Наименьший делитель:", divisor) else: print("Число простое") ```

3) Задача: Последовательность Фибоначчи это последовательность типа Xn = Xn – 1 + Xn – 2, n > 2, n - номер числа в последовательности. Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, то есть выведите такое число n, что Xn = A. Если A не является числом Фибоначчи, выведите число -1.

Решение: Для определения, является ли число A числом Фибоначчи, мы можем последовательно вычислять числа Фибоначчи до тех пор, пока полученное число не превысит A. Если полученное число равно A, то выводим его номер в последовательности, иначе выводим -1.

Вот решение на языке Python:

```python def fibonacci_number(n): if n <= 0: return None if n == 1: return 0 if n == 2: return 1 prev_prev = 0 prev = 1 current = 1 i = 3 while current < n: prev_prev = prev prev = current current = prev_prev + prev i += 1 if current == n: return i else: return -1

A = int(input("Введите число A: ")) fibonacci_index = fibonacci_number(A) if fibonacci_index != -1: print("Число Фибоначчи с номером:", fibonacci_index) else: print("Число не является числом Фибоначчи") ```

4) Задача: Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности, то есть элемента, который будет наибольшим, если из последовательности удалить наибольший элемент.

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

Вот решение на языке Python:

```python def second_largest_element(sequence): largest = 0 second_largest = 0 for num in sequence: if num > largest: second_largest = largest largest = num elif num > second_largest and num != largest: second_largest = num return second_largest

sequence = [] num = int(input("Введите число: ")) while num != 0: sequence.append(num) num = int(input("Введите число: "))

second_largest = second_largest_element(sequence) print("Второй по величине элемент:", second_largest) ```

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

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос