(2) =(теперь для того чтобы перевести из 2-ной в 10-ную,необходимо разложить число на множители, умножая на основание данной с.с и расставляя степень числа)1*
+1*
+0*
+0*
=(затем возводим основание с.с в степень данного числа)1*8+1*4+0*2+0*1=(в итоге перемножаем и складываем)8+4+0+0=(после сложение получилось число в 10-ной с.с) 12(10), то что (...)- это система счисления,записывается нижним индексом и без скобок,т.е старшей сестре 12 лет, если она пошла в школу с 111, то это 111(2)=
=
=1*4+1*2+1*1=4+2+1=7(10) ---->сестра пошла в школу с 7-ми лет, тут 7 лет - 1 кл, 8 лет - 2 кл, 9 лет - 3 кл, 10 лет - 4 кл, 11 лет - 5 кл, 12 лет - 6 кл
=
=1*4+0*2+0*1=4 (10) года
Объявляем функцию gcd, принимающую два целочисленных параметра и возвращающую их наибольший общий делитель. Здесь это вычисляется при алгоритма Евклида.
Затем для удобства определяем ещё одну функцию gcd3, которая принимает уже три аргумента и, используя указанную в условии формулу и описанную выше функцию gcd, вычисляет НОД от трёх чисел.
В основной части программы просто три числа считываются с клавиатуры и выводится ответ.
Код (PascalABC.NET v3.6.2316):
function gcd(a, b: integer): integer;
begin
while a * b <> 0 do
(a, b) := (b, a mod b);
Result := a + b
end;
function gcd3(a, b, c: integer) := gcd(gcd(a, b), c);
begin
var (a, b, c) := ReadInteger3;
print(gcd3(a, b, c))
end.
Пример ввода:
10 40 20
Пример вывода:
10
var
x,y,n,i,a:integer;
countX, countY:integer;
begin
write('N: ');
readln(n);
write('X, Y: ');
readln(x,y);
countX:=0; countY:=0;
for i:=1 to N do
begin
readln(a);
if a=x then inc(countX);
if a=y then inc(countY);
end;
if countX > countY then
writeln('Verno')
else
writeln('Error');
end.