М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
ek72Wasdk
ek72Wasdk
18.10.2021 16:08 •  Информатика

Условие
Дано натуральное число n. Необходимо определить, является ли n степенью числа 5.

Формат входных данных
Вводится целое число n (1≤n≤230).

Формат выходных данных
Выведите «YES», если n — степень пяти, и «NO» в противном случае.

входные данные
625
42
выходные данные
YES
NO

👇
Ответ:

Так как тут мизерные ограничения, то для решения конкретно этой задачи можно просто проифать : если n == 5 || n == 125 , то YES , иначе NO

НО мы же не пальцем деланные, да? Поэтому решим задачку и для больших N, с асимптотикой log2(N), используя бинпоиск :

#include < iostream >

#include < cmath >

using namespace std;

bool check(int n){

   int l = 0, r = 15;

   while(l <= r){

       int m = (l + r)/2;

       if(pow(5,m) < n)

           l = m + 1;

       else if(pow(5,m) > n)

           r = m - 1;

       else

           return true;

   }

   return false;

}

signed main() {

   int N;

   cin >> N;

   check(N) ? cout << "YES" : cout << "NO";

}

4,5(59 оценок)
Ответ:
кики50
кики50
18.10.2021

#include <iostream>

using namespace std;

int main() {

int n,x=1;

cin >> n;

while (x < n) {

 x *= 5;

}

if (x == n) {

 cout << "YES";

}

else {

 cout << "NO";

}

return 0;

}

4,4(94 оценок)
Открыть все ответы
Ответ:
Енотuк
Енотuк
18.10.2021
Я не знаю ответы впишите тут
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
4,8(54 оценок)
Ответ:
Lounges
Lounges
18.10.2021
ПаскальАВС.нет

var
  f:text;
  s,t:string;
  i,n:integer;
  y:boolean;  //признак наличия слова NO  

function wr(c:char):boolean; //определяет, буква или нет
begin
if (c in ['A'..'Z']) or (c in ['a'..'z']) then result:=true else result:=false
end;

begin
assign(f,'d:/file.txt');
reset(f);
repeat
  readln(f,t);
  s:=t;
  y:=false;
  i:=pos('NO',s);
  while i>0 do
    begin
    n:=length(s);
    if n=2 then
       y:=true
       else
          begin
          if i=1 then
             begin
             if wr(s[i+2])=false then y:=true;
             end
             else
                 if wr(s[i-1])=false then y:=true;
          end;
    delete(s,1,i+2);
    i:=pos('NO',s);
    end; 
  if y=false then writeln(t);
  until f.Eof;
close(f)
end.  
4,5(89 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ