Вопрос задан 30.06.2023 в 01:20. Предмет Информатика. Спрашивает Галустян Элина.

ДАЮ 50 БАЛЛОВ РЕШИТЕ ЗАДАЧУ ПО С++!!!!!!!! Условие Дано натуральное число n. Необходимо

определить, является ли n степенью числа 5. Формат входных данных Вводится целое число n (1≤n≤230). Формат выходных данных Выведите «YES», если n — степень пяти, и «NO» в противном случае. входные данные 625 42 выходные данные YES NO
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Гвоздикова Эля.

Так как тут мизерные ограничения, то для решения конкретно этой задачи можно просто проифать : если 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";

}

0 0
Отвечает Гаврилов Данил.

#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;

}

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

Для решения данной задачи вам потребуется проверить, является ли число n степенью числа 5. Вы можете использовать следующий алгоритм:

  1. Считайте число n.
  2. Инициализируйте переменную power равной 1, а также флаг isPowerFive равным false.
  3. Начните цикл:
    • Если power равно n, установите isPowerFive в true и выйдите из цикла.
    • Если power больше n, выйдите из цикла.
    • Умножьте power на 5.
  4. Проверьте значение флага isPowerFive:
    • Если isPowerFive равно true, выведите "YES".
    • Если isPowerFive равно false, выведите "NO".

Вот пример решения на языке C++:

cpp
#include <iostream> int main() { int n; std::cin >> n; int power = 1; bool isPowerFive = false; while (true) { if (power == n) { isPowerFive = true; break; } if (power > n) { break; } power *= 5; } if (isPowerFive) { std::cout << "YES" << std::endl; } else { std::cout << "NO" << std::endl; } return 0; }

При вводе числа 625 программа выведет "YES", а при вводе числа 42 программа выведет "NO".

0 0

Похожие вопросы

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

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

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