
ДАЮ 50 БАЛЛОВ РЕШИТЕ ЗАДАЧУ ПО С++!!!!!!!! Условие Дано натуральное число 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";
}



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



Для решения данной задачи вам потребуется проверить, является ли число n степенью числа 5. Вы можете использовать следующий алгоритм:
- Считайте число n.
- Инициализируйте переменную power равной 1, а также флаг isPowerFive равным false.
- Начните цикл:
- Если power равно n, установите isPowerFive в true и выйдите из цикла.
- Если power больше n, выйдите из цикла.
- Умножьте power на 5.
- Проверьте значение флага 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".


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







Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili