var
a,n,m:integer;
b:boolean;
begin
while true do
begin
writeln('viberite deistvie:');
readln(a);
case a of
1:
begin
writeln('vvedite chislo');
readln(n);
end;
2:if n>=0 then writeln('>=0') else writeln('<');
3:if (n mod 8) = 0 then writeln('kratno 8') else writeln('ne kratno 8');
4:if n<1 then writeln('<') else writeln('>=1');
5:begin
m:=n;
b:=true;
while m>=3 do
begin
if m mod 3 <> 0 then begin b:=false; break;end
else
begin
m:= m div 3;
end;
end;
if m<>1 then b:=false;
if b then writeln('stepen 3') else writeln('ne stepen 3');
end;
6:break;
end;
end;
end.
(Паскаль) Определение элементарных свойств введеного числа.
Замечания: предусмотреть переход между перечисленными условиями с помощью оператора Case.
Народ, помогите с этой задачей пожалуйста...
[COLOR="Red"]Нарушение правил форума. В следущий раз будет бан, а тема будет удалена. Читай правила форума.[/COLOR]
вобщем будет как-то так(если не напортачил нигде):
вот проверку на степень тройки так проще
Код:
if (n mod 10) in [3,9,7,1] then writeln('stepen 3') else writeln('ne stepen 3');
в одну строчку
Цитата: nilbog
ой - как-то сложно слишком
вот проверку на степень тройки так проще
в одну строчку
вот проверку на степень тройки так проще
Код:
if (n mod 10) in [3,9,7,1] then writeln('stepen 3') else writeln('ne stepen 3');
[COLOR="White"]//[/COLOR]
[COLOR="White"]//[/COLOR]
в одну строчку
Уж лучше сложно, но правильно, чем в одну строчку, но неправильно :).
К примеру возьмем число 17. Поделим на 10. Остаток 7. По-вашему получается, что 17 это степень тройки...Ну надо же...
просто 3 9 7 1 эти числа с периодичностью 4 появляются последней цифрой степеней тройки
но достаточности увы нет ((
зато этим условием мы можем заведомо отсеять числа не явл степенями тройки :)
ps я что-то спросонья перепутал с классической задачей - на какую цифру оканчивается число скажем 3^259