Другие языки программирования и технологии

Программа на языке C++

Напишите, пожалуйста, программу по задаче. ***Пусть дано натуральное число n. Выяснить, является ли оно степенью числа 3.*** Не получается решить. Желательно, способом деления, но можно и другими. Заранее спасибо.
М*
Макс *
110
var n:integer; t:real; begin readln(n); t:=ln(n)/ln(3); writeln(frac(t)=0); end.
А, на С++..
#include "iostream"
#include "cmath"
using namespace std;
int main(){int n; double t; cin>>n; t=log(n)/log(3); cout<<boolalpha<<!modf(t,&t)<<endl;}
Павел Коробченко
Павел Коробченко
65 160
Лучший ответ
Что не получилось? Код в студию.

P.S: Можно делением, можно умножением (если речь идет о целых числах).. можно кубический корень с проверкой на целое и желательно с учетом погрешности (функция pow)
D D
D D
84 764
D D Сорян =) Умудрился перепутать. Нужна степень тройки, а не является ли число кубом...
#include
#include

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int n,n1,n2;
cin >> n;
n1 = 1;
double w = log(n) / log(3);
int a = floor(w);

for (int i = 1; i <= a; i++)
n1 = n1 * 3;
n2 = n1 * 3;

if (n == n1)
cout << n << " is value of 3 in power " << a << endl;
else if(n == n2)
cout << n << " is value of 3 in power " << a+1 << endl;
else
{
cout << n << " is not value of 3" << endl;
}

return 0;
}
Артем Корсунов
Артем Корсунов
36 000
Вот способом деления:

#include

using namespace std;

int main() {
setlocale(LC_ALL, "");
cout << "Введите число n: ";
int n;
cin >> n;

while (n % 3 == 0)
n /= 3;

cout << "Это число ";
if (n != 1)
cout << "не ";
cout << "является степенью числа 3";
return 0;
}
МБ
Мендеш Бай
20 861