Программа является ли число степенью 3

Нужно составить программу, которая определяет: является ли заданное число степенью тройки (3). программа работает, но при любом значении (даже если оно является степенью) пишет, что число степенью не является:

program n_1; var N: integer; begin write (‘Введите натуральное число N >>’); readln (N); while N>=3 do N:= N div 3; if N mod 3 =0 then writeln (‘число является степенью’) else writeln (‘число не является степенью’) end.

Я представила программу как последовательное деление на 3. Пусть N = 36 36 >= 3 N = 36/3=12,0=12 12 >= 3 N = 12/3=4,0=4 4 >= 3 N = 4/3=1,3=1 1 >= 3 Как я понимаю, ошибка в 8 строчке (if N mod 3 =0 then) или в самом цикле. Когда мы делим 1 на 3 (1/3=0,3=3) то ноль не получается.

Поэтому программа и пишет, что число не является степенью. Если мы заменим деление на 3, делением на 1 (if N mod 1 =0 then), то число всегда будет являться степенью (т.к. 1/1=1,0=0). Я понимаю, что нужно сделать так, чтобы при получении дробного числа программа считала что оно степенью не является, но не знаю как. ПОМОГИТЕ ПОЖАЛУЙСТА, ЗАРАНЕЕ СПАСИБО!

Математика| Степени

Код к задаче: «Определить, является ли натуральное число N степенью 3»

Листинг программы

program p1; var n: integer; begin ReadLn(n); while (n mod 3) = 0 do n := n div 3; if (n = 1) then WriteLn (‘Число является степенью тройки.’) else WriteLn (‘Число не является степенью тройки.’); ReadLn; end.

Источник: studassistent.ru

Вызовы Python: Проверьте, является ли данное положительное целое число степенью трех

Напишите программу на Python, чтобы проверить, является ли данное положительное целое число степенью три.

Читайте также:
Основные положения программы меньшевиков

Объяснение:

«Python:

Пример решения : —

Код Python:

def is_Power_of_three(n): while (n % 3 == 0): n /= 3; return n == 1; print(is_Power_of_three(9)) print(is_Power_of_three(81)) print(is_Power_of_three(21))
Правда Правда Ложь

Блок — схема:

«Python

Визуализируйте выполнение кода Python:

Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:

Редактор кода Python:

Внесите свой код и комментарии через Disqus.

Каков уровень сложности этого упражнения?

Источник: www.kodesource.top

Программа является ли число степенью 3

Написать на С++ программу, которая определяет , является ли заданное число степенью тройки. Помогите пожалуйста, в С++ я новичок, есть данная программа на Паскале:

Решение задачи «Это степень двойки?»

var n:=integer; begin; readln(n); while n>1 do begin if n mod 3 =1 or 2 then break; n:=n div 3 end; writeln(n=1) end.
нужно написать ее на C++
Последний раз редактировалось Stilet; 21.12.2012 в 16:33 .
Регистрация: 25.10.2011
Сообщений: 3,178
ОК. Как Вы, человек, будете определять, является ли число степенью 3?
Пользователь
Регистрация: 15.11.2012
Сообщений: 12
Многократным делением на 3
Регистрация: 25.10.2011
Сообщений: 3,178

Многократным делением на 3

До. *цензура!* 10 символов!
До единицы, так?
То есть, программа действий:
//Получить число //И, пока оно не стало равно 1 //Посмотреть, делится ли оно на 3; если не делится — //доложить об обломе //и на этом закончить. //Ну, а если делится — поделить //и продолжить //Раз число стало равно 1 — значит, мы делили-делили и доделились //Сообщаем об успехе //и заканчиваем

Каждая строка комментариев соответствует некоторой строке кода на языке C++. Попробуйте их написать (комментарии оставьте).

Пользователь
Регистрация: 15.11.2012
Сообщений: 12

#include «stdafx.h»
#include «iostream»
#include «conio.h»
usingnamespace std;
int main()
while(m>1);
if m mod 3=1 or 2 then break;
m:=m div 3;
>

Читайте также:
Программа которая копирует файлы с флешки

я написал такую вот программу, знаю , что она не правильна, подскажите пожалуйста ошибки

Форумчанин
Регистрация: 20.05.2012
Сообщений: 315

#include «stdafx.h»
#include «iostream»
#include «conio.h»
usingnamespace std;
int main()
while(m>1);
if m mod 3=1 or 2 then break;
m:=m div 3;
>

я написал такую вот программу, знаю , что она не правильна, подскажите пожалуйста ошибки

Вы программу пишите на паскале или на си, вы уж как-то определились бы.
Пользователь
Регистрация: 15.11.2012
Сообщений: 12
в том — то и дело , что на Си я первый раз пишу
Форумчанин
Регистрация: 20.05.2012
Сообщений: 315
Немножко переделал, не критично?

#include «iostream» #include «conio.h» using namespace std; void main() < int m; cin >> m; if (m < 3) < cout while(m != 1) < if (m % 3 != 0) < cout m = m / 3; > cout
Последний раз редактировалось kventin_zhuk; 20.12.2012 в 22:04 .

Источник: www.programmersforum.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru