. в нужно вывести все составные числа из промежутка [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 a: array[1..20,1..20] of integer; n,m,i,j,min,jm,x: integer; begin randomize; write('Введите размеры массива: '); readln(n,m); writeln('Исходный массив:'); for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(19)-9; write(a[i,j]:4); end; writeln; end; min:=0; for i:=1 to n do min:=min+a[i,1]; writeln('Сумма элементов 1-го столбца = ',min); jm:=1; for j:=2 to m do begin x:=0; for i:=1 to n do x:=x+a[i,j]; writeln('Сумма элементов ',j,'-го столбца = ',x); if x<min then begin min:=x; jm:=j; end; end; writeln('Минимальная сумма в ',jm,'-м столбце'); writeln('Полученный массив:'); for i:=1 to n do begin for j:=1 to m do begin if j<>jm then a[i,j]:=a[i,jm]; write(a[i,j]:4); end; writeln; end; 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;