Var K,n,i: integer;
begin
writeln('Введите число');
readln(K); n:=0;
for i:=1 to K do
if (i mod 2=1)and(K mod i =0) then n:=n+1;
writeln('Количество нечетных делителей числа равно ', n);
readln
end. Это?
--------------------------------------Вроде так--------------------------------------
Номер 17, ответ 9
А ещё у вас ошибка вроде в 18
//Pascal ABC.NET 3.1 сборка 1219
procedure PerAndPlo(var s,p:real;a,b,c:real);
Var
pp:real;
begin
p:=a+b+c;
pp:=p/2;
s:=sqrt(pp*(pp-a)*(pp-b)*(pp-c));
end;
Var
a1,b1,c1,p1,s1,a2,b2,c2,p2,s2:real;
begin
Writeln('Введите длины сторон первого треугольника:');
readln(a1,b1,c1);
Writeln('Введите длины сторон второго треугольника:');
readln(a2,b2,c2);
PerAndPlo(s1,p1,a1,b1,c1);
PerAndPlo(s2,p2,a2,b2,c2);
Writeln('Сумма периметров:',(p1+p2));
Writeln('Сумма площадей:',(s1+s2));
end.
Пример ввода:
1
2
3
4
5
6
Пример вывода:
Сумма периметров:21
Сумма площадей:9.92156741649221
Vari, max, y: integer;
begin
Writeln('Вводите последовательно числа.');
Writeln('Для завершения ввода введите ноль.');
Writeln('----------------------');
max := 0;
y := 0;
repeat
y := y + 1;
write(y, ' число:');
readln(i);
if (y = 1) then max := i;
if (i = 0) then break;
if (i > max) then max := i;
until i = 0;
Writeln('----------------------');
Writeln('Максимальное число: ', max);
Writeln();
end.