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

0 голосов
88 просмотров

Помогите решить на Питоне задачи, пожалуйста, в интернете все решения неправильные!!! Даю 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 в последовательность не входит, а служит как признак ее окончания).

Выходные данные
Выведите ответ на задачу.


Информатика (66 баллов) | 88 просмотров
Дан 1 ответ
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   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])



(314 баллов)
0

Огромное спасибо!!! Уже 3 день сижу, 9 уже решила, остались только эти)))

0

Не за что)