по алгоритму евклида:
var a,b:integer;
begin
readln(a,b);
repeat
if a>b then
a:=a mod b
else
b:=b mod a;
until (a=0) or (b=0);
writeln(a+b);
end.
-------------------------
var a,b:integer;
begin
readln(a,b);
while (a<>0) and (b<>0) do
if a>b then
a:=a mod b
else
b:=b mod a;
writeln(a+b);
end.
<u><em>Microsoft qBASIC:</em></u>
DIM n AS LONG
CLS
INPUT "Введите число ", n
INPUT "Введите цифру для поиска ", d
flag = 0
DO WHILE n > 0 AND flag = 0
IF d = n MOD 10 THEN
PRINT "Цифра в числе есть"
flag = 1
ELSE
n = n / 10
END IF
LOOP
IF flag = 0 THEN PRINT "Цифры в числе нет"
END
<em><u>Тестовое решение:</u></em>
Введите число 5374012
Введите цифру для поиска 1
Цифра в числе есть
Ответ:
712->1011001000
57->111001
473-> 111011001
1278->10011111110
Объяснение:
чтобы перевести десятичную в двоичную можно повторять одну и ту же схему.
Берём исходное число(57) и делим на 2.
если у нас оказался остаток то мы его записываем, иначе мы записываем 0 вместо 1. далее мы продолжаем повторять когда у нас не останется 1 от исходного числа. в итоге мы получили число из 1 и 0 но для того чтобы оно было действительно двоичным надо его просто перевернуть (100111 -> 111001).
АГБВ.....................................
Естественно арифметико-логическое устройство
Ответ 4