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

Pascal: Дано 3-значное число N.Определить,являются ли числа,из которых оно состоит членами геометрической прогрессии

Прошу помочь написать программулю :) Болела всю тему программирования, некоторое могу сделать, а это никак не поддаётся Должно быть не сложно, школьная программа :) Доброму человеку, который захочет помочь: чем проще написано, тем лучше, помню, что использовать надо mod, div (ну я думаю, те, кто умеет писать,знают). И конечно же, буду очень благодарна и признательна!
Что интересно!
Никто не рассмотрел эти прогрессии.. .
Определение геометрической прогрессии
Получается, что среди 3-х значных чисел геометрической прогрессией можно считать только следующие:
111, 222, 333, 444, 555, 666, 777, 888, 999 - со знаменателем 1
124, 136, 248 - со знаменателем 2
139 - со знаменателем 3
148 - со знаменателем 4
-----------------
Всё!
Для знаменателя 1 - достаточно проверить на делимость 111, а остальные можно легко вписать в условие:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
var N : Integer;
begin Write('Введите 3-хзначное число: '); ReadLn(N);
if (N = 124) or (N = 136) or (N = 248) or (N = 139) or (N = 148) or (N mod 111 = 0) then WriteLn('Да') else WriteLn('Нет');
end.
ИБ
Иван Бойко
97 612
Лучший ответ
program N52567073;
var n,a,b,c,t:integer;
begin
write('Bведите число: ');
readln(n);
a:=n div 100;
b:=n div 10 mod 10;
c:=n mod 10;
if a>b then
begin
t:=a;
a:=b;
b:=t;
end;
if b>c then
begin
t:=b;
b:=c;
c:=t;
if a>b then
begin
t:=a;
a:=b;
b:=t;
end;
end;
if (a*b*c<>0) and (c div b = b div a) and (c mod b = b mod a) then
writeln('Цифры числа - члены геометрической прогрессии')
else writeln('Цифры числа - не члены геометрической прогрессии');
end.

Более школьный вариант мне в голову не приходит.
Что интересно!
только один заметил что числа 124, 142, 214, 241, 412, 421 то же состояит из членов геометрической прогрессии 1,2,4

зы 136 и 148 ниразу не геометрическая прогрессия! и вобще не прогрессия
Jurii еще не расмотрел убывающие прогрессии 421 и 842 со знаменателем 0,5 и 931 с 0,3333333333....
ПРАВИЛЬНО, кратко и ясно:
VAR
a,b,c,n:integer;
begin
readln(n);
a:=n div 100;
b:=(n div 10) mod 10;
c:=n mod 10;
if (b<>0)and(c<>0)and(a<>b)and((a/b) = (b/c))
then writeln('YES')
else writeln('NO');
END.
program lol;
var
a,b,c,d,n:integer;
begin
readln(n);
a:=n div 100;
b:=(n div 10) -a*10;
c:=n-a*100-b*10;
d:=round(b/a);
if c=a*d*d then
writeln('da')
else
writeln('no');

Похожие вопросы