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

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

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

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

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

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

Определить, является ли натуральное число степенью другого числа - C++
Помогите написать программу используя while или do...while. : Составить программу для определения, является ли натуральное число к...

Помогите, ГОС экзамен! Является ли число степенью другого числа - C++
Нужно написать программу определения является ли натуральное число степенью какого-либо натурального числа. Вообще нужно написать на...

Определите, является ли число степенью числа 2, и если является, то выведите значение этой степени - C++
Дано натуральное число n. Определите, является ли оно степенью числа 2, и если является, то выведите значение этой степени / С++ для...

Дано натуральное число n. Определите, является ли оно степенью числа 2, и если является, то выведите значение этой степени - C++
Дано натуральное число n. Определите, является ли оно степенью числа 2, и если является, то выведите значение этой степени.

Фунция, проверяющая, является ли число степенью числа 5 - C++
Описать функцию IsPower5(K) логического типа, возвращающую True, если целый параметр K (> 0) является степенью числа 5, и False в противном...

Проверить, является ли вводимое число степенью числа 3 - C++
Помогите, в 22 строке выводит ошибку: "Требуется while". Программа должна проверять вводимое число является ли оно степень числа 3 ...

11
RepoMen
13 / 2 / 1
Регистрация: 24.11.2010
Сообщений: 10
24.11.2010, 19:17 #2
Цитата Сообщение от Killan Посмотреть сообщение
как это сделать
нужно перебирать число (К) от 1 и дальше и перебирать степень (О) до тех пор, пока число К в степени О меньше заданого
если К в степени О равно нашему числу, значит ответ положительный
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
24.11.2010, 19:26 #3
Killan, вспоминайте математику. Есть такая замечательная функция под названием логарифм.
0
Killan
4 / 4 / 0
Регистрация: 28.09.2009
Сообщений: 52
24.11.2010, 19:47  [ТС] #4
RepoMen
Мм... принцип понял, но мне кажется это слишком громоздко, а если число в несколько тысяч ?
Перебор затянется...
gooseim
В прошлом с математикой не дружил, стал её нормально понимать, только после того как увлекся программированием, но логарифм это для меня жуткое ругательство)
Если не сложно объясните принцип, или покажите пример.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.11.2010, 19:49 #5
Цитата Сообщение от Killan Посмотреть сообщение
Нужна функция которая проверяет, является ли число степенью какого либо другого числа.
что нужно вывести в ответ (просто да или нет)
привели свое число и ответ
0
Killan
4 / 4 / 0
Регистрация: 28.09.2009
Сообщений: 52
24.11.2010, 19:56  [ТС] #6
Нужно получить именно числа, которые при возведении в степень дадут искомое число.
0
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)
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.11.2010, 20:33 #8
Цитата Сообщение от Killan Посмотреть сообщение
Нужно получить именно числа, которые при возведении в степень дадут искомое число.
Вы сами хотя бы поняли что сказали
а где пример
0
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 мне не известны.]
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
24.11.2010, 20:40 #10
Killan, тогда видимо только перебором. Я думал 2 числа известны.
1
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
24.11.2010, 20:52 #11
Перебирать тут надо только основание логарифма, а результат проверять на "целость". Если логарифм z по очередному основанию y равен x, и этот x целый - то x есть искомое основание степени, а основание логарифма y - показатель степени.
0
go
Эксперт С++
3586 / 1366 / 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);
подкорректировал, но ты еще через отладчик доделай, у меня просто времени больше нет
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2010, 21:18
Привет! Вот еще темы с ответами:

Определить, является ли натуральное число k степенью числа - C++
2. Составить программу для определения, является ли натуральное число k степенью числаВнимательнее выбирайте раздел для размещения тем

Определить является ли заданное целое число степенью числа 5 - C++
Необходимо составить программу, определяющую, является ли заданное целое число n степенью числа 5. Результат вывести на экран. *********...

Дано целое число N (> 0). Проверить,является ли оно степенью числа 3. С++ - C++
Дано целое число N (&gt; 0). Если оно является степенью числа 3, то вывести true, если не является — вывести false.

Функцию которая определяет, является ли натуральное число N степенью числа 5. Перевести с Pascal - C++
Нужно перевести функцию которая определяет, является ли натуральное число N степенью числа 5. Если N - степень пятёрки, то функция...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
24.11.2010, 21:18
Ответ Создать тему
Опции темы

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