{Проверка на существование треугольника} if ((a+b)>c) and ((a+c)>b) and ((b+c)>a) then Begin if ((a=b)or (b=c) or (a=c)) then Writeln('Треугольник равнобедренный');
if ((a=b) and (b=c)) then Writeln('Треугольник равносторонний') else Writeln('Треугольник разносторонний');
if ((a*a+b*b = c*c) or (a*a+c*c = b*b) or (b*b+c*c = a*a)) then Writeln('Треугольник прямоугольный'); end else Writeln('Треугольник нельзя построить');
. в нужно вывести все составные числа из промежутка [2; n]. код программы:
program lab3;
var i,n,j,s,l: integer;
m: real;
begin
readln (n);
for i: =2 to n do
begin
s: =trunc (sqrt (i));
for l: =2 to s do
begin
m: = i mod l;
if m=0 then
write (' ',i);
end;
end;
end.
но проблема - как только s становится больше 2, составные числа начинают несколько раз повторятся, т.к., например 12 делится и на 2 и на 3. вопрос: как мне сделать выход из цикла после первого успешного деления?
uses crt;
Var a,b,c:integer;
Begin
Write('Введите 1-ю сторону: '); Readln(a);
Write('Введите 2-ю сторону: '); Readln(b);
Write('Введите 3-ю сторону: '); Readln(c);
{Проверка на существование треугольника}
if ((a+b)>c) and ((a+c)>b) and ((b+c)>a) then
Begin
if ((a=b)or (b=c) or (a=c)) then
Writeln('Треугольник равнобедренный');
if ((a=b) and (b=c)) then
Writeln('Треугольник равносторонний')
else Writeln('Треугольник разносторонний');
if ((a*a+b*b = c*c) or (a*a+c*c = b*b) or (b*b+c*c = a*a)) then
Writeln('Треугольник прямоугольный');
end
else Writeln('Треугольник нельзя построить');
Readln();
END.
ответ:
. в нужно вывести все составные числа из промежутка [2; n]. код программы:
program lab3;
var i,n,j,s,l: integer;
m: real;
begin
readln (n);
for i: =2 to n do
begin
s: =trunc (sqrt (i));
for l: =2 to s do
begin
m: = i mod l;
if m=0 then
write (' ',i);
end;
end;
end.
но проблема - как только s становится больше 2, составные числа начинают несколько раз повторятся, т.к., например 12 делится и на 2 и на 3. вопрос: как мне сделать выход из цикла после первого успешного деления?
var
i, n, j, s, l: integer;
m: real;
begin
readln(n);
for i : = 2 to n do
begin
s : = trunc(sqrt(i));
for l : = 2 to s do
begin
m : = i mod l;
if m = 0 then
begin
write(' ', i);
break;