Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Killan
 Аватар для Killan
4 / 4 / 0
Регистрация: 28.09.2009
Сообщений: 52
#1

Является ли число степенью другого числа - C++

24.11.2010, 19:07. Просмотров 1375. Ответов 11
Метки нет (Все метки)

Нужна функция которая проверяет, является ли число степенью какого либо другого числа.
Ломаю голову, но пока не смог придумать как это сделать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2010, 19:07     Является ли число степенью другого числа
Посмотрите здесь:

C++ В целочисленном массиве найти и напечатать те элементы, которые являются степенью 2. Написать функцию, проверяющую, является ли число степенью 2.
Помогите, ГОС экзамен! Является ли число степенью другого числа C++
C++ Проверить, является ли вводимое число степенью числа 3
C++ Определить, является ли натуральное число k степенью числа
C++ Определите, является ли число степенью числа 2, и если является, то выведите значение этой степени
C++ Определить, является ли натуральное число степенью другого числа
C++ Является ли число степенью двойки?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RepoMen
 Аватар для RepoMen
13 / 2 / 1
Регистрация: 24.11.2010
Сообщений: 10
24.11.2010, 19:17     Является ли число степенью другого числа #2
Цитата Сообщение от Killan Посмотреть сообщение
как это сделать
нужно перебирать число (К) от 1 и дальше и перебирать степень (О) до тех пор, пока число К в степени О меньше заданого
если К в степени О равно нашему числу, значит ответ положительный
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
24.11.2010, 19:26     Является ли число степенью другого числа #3
Killan, вспоминайте математику. Есть такая замечательная функция под названием логарифм.
Killan
 Аватар для Killan
4 / 4 / 0
Регистрация: 28.09.2009
Сообщений: 52
24.11.2010, 19:47  [ТС]     Является ли число степенью другого числа #4
RepoMen
Мм... принцип понял, но мне кажется это слишком громоздко, а если число в несколько тысяч ?
Перебор затянется...
gooseim
В прошлом с математикой не дружил, стал её нормально понимать, только после того как увлекся программированием, но логарифм это для меня жуткое ругательство)
Если не сложно объясните принцип, или покажите пример.
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.11.2010, 19:49     Является ли число степенью другого числа #5
Цитата Сообщение от Killan Посмотреть сообщение
Нужна функция которая проверяет, является ли число степенью какого либо другого числа.
что нужно вывести в ответ (просто да или нет)
привели свое число и ответ
Killan
 Аватар для Killan
4 / 4 / 0
Регистрация: 28.09.2009
Сообщений: 52
24.11.2010, 19:56  [ТС]     Является ли число степенью другого числа #6
Нужно получить именно числа, которые при возведении в степень дадут искомое число.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
24.11.2010, 20:05     Является ли число степенью другого числа #7
x^y=z
log(x, z)=y
вот и вся математика

Добавлено через 3 минуты
x=z^(1/y)
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.11.2010, 20:33     Является ли число степенью другого числа #8
Цитата Сообщение от Killan Посмотреть сообщение
Нужно получить именно числа, которые при возведении в степень дадут искомое число.
Вы сами хотя бы поняли что сказали
а где пример
Killan
 Аватар для Killan
4 / 4 / 0
Регистрация: 28.09.2009
Сообщений: 52
24.11.2010, 20:35  [ТС]     Является ли число степенью другого числа #9
Цитата Сообщение от gooseim Посмотреть сообщение
x^y=z
log(x, z)=y
вот и вся математика

Добавлено через 3 минуты
x=z^(1/y)
Как я понял, тут имея 2 значения можно найти третье.
Допустим, z==9.
Тогда уравнения выглядят так:
3^2=9
log(3, 9)=2
3=9^(1/2)

Но мне известно только одно число, допустим
49=x(7)^y(2) - [x и y мне не известны.]
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
24.11.2010, 20:40     Является ли число степенью другого числа #10
Killan, тогда видимо только перебором. Я думал 2 числа известны.
silent_1991
Эксперт C++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.11.2010, 20:52     Является ли число степенью другого числа #11
Перебирать тут надо только основание логарифма, а результат проверять на "целость". Если логарифм z по очередному основанию y равен x, и этот x целый - то x есть искомое основание степени, а основание логарифма y - показатель степени.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2010, 21:18     Является ли число степенью другого числа
Еще ссылки по теме:

Фунция, проверяющая, является ли число степенью числа 5 C++
C++ Определить является ли число k степенью 3
C++ Определить является ли заданное целое число степенью числа 5
C++ Дано целое число N (> 0). Проверить,является ли оно степенью числа 3. С++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.11.2010, 21:18     Является ли число степенью другого числа #12
Цитата Сообщение от Killan Посмотреть сообщение
49=x^y - [x и y мне не известны.]
C
1
2
3
4
5
6
7
8
9
10
11
12
 int a=49, f=0;
int w; //степень
for (int i=2; i<=sqrt(a); i++)  
{ w=0;
   if (a%i==0)
       while (a) {
         if (a%i!=0)
          break
       a/=i; w++;}
if (!a)
{ f=1; break; }  }
  // i^w=a
Добавлено через 19 минут
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a=4, i, f=0;
int w; //степень
for ( i=2; i<=sqrt(a); i++)
{ w=0;
   if (a%i==0)
       while (a!=1) {
         if (a%i!=0)
          break;
       a/=i; w++;}
if (a==1)
{ f=1; break; }  }
  // i^w=a
 
         if (f)
         printf ("%d - %d", i, w);
подкорректировал, но ты еще через отладчик доделай, у меня просто времени больше нет
Yandex
Объявления
24.11.2010, 21:18     Является ли число степенью другого числа
Ответ Создать тему
Опции темы

Текущее время: 19:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru