Відповідь:
#НОД чисел 45 и 105
a = 45;
b = 105;
result = False;
if (a > b):
big = a;
else:
big = b;
i = 2;
while (i <= big):
if ((a % i == 0) and (b % i == 0)):
result = i;
i += 1;
print (result);
Пояснення:
1)
var a,b,x,y:longint;
begin
write("Vvedite nachalo i konec otrezka: ");
read(a,b);
write("Vvedite x: ");
read(x);
y:=sqr(x)*x;
if (y>a)and(y<b) then write("Na dannom otrezke znachenie funkcii ravno ",y) else write("Na dannom otrezke net reshenii");
readln
end.
2)
var c,i:byte;
begin
for i:=49 to 215 do
if (i mod 4=0) then c:=c+1;
write("Kolichestvo chisel, kratnyh 4 na zadannom promezhutke ravno ",c);
readln
end.
3)
var i:integer;
p:longint;
for i:=1000 to 9999 do
if (i mod 10=3) then p:=p*i;
write("Proizvedenie chetyrehznachnyh chisel, okanchivaushihsya na 3 ravno ",p);
readln
end.
4)
var i:byte;
c:integer;
begin
for i:=221 to 778 do
if ((i mod 10)=(i div 100)) then c:=c+1;
write("Kolichestvo chisel ravno ",c);
readln
end.
5)
var i:longint;
c:integer;
begin
for i:=10000 to 99999 do
if ((i mod 10)=(i div 10000))and(((i mod 100)div 10)=((i div 1000)mod 10)) then c:=c+1;
write("Kolichestvo chisel ravno ",c);
readln
end.
для нахождения НОДа не мало, не буду углубляться во всякие сложные алгоритмы, так как вряд ли Вы их проходите.
Сравним перебор и алгоритм Евклида, сразу можем сказать, что алгоритм Евклида в разы быстрее, так как при переборе мы тупо перебираем значения, то есть, данный алгоритм зависит от величины числа очень сильно. Конечно, алгоритм Евклида также зависит от введенного числа, однако, в нём будет намного меньше повторений, нежели в с перебором.
Можем глянуть немного статистики:
Генерируется 500 пар чисел
Перебор - 0.5022 с
Алгоритм Евклида - 0.0008
Теперь мы точно можем сделать вывод, что алгоритм Евклида в разы быстрее простого перебора.