. в нужно вывести все составные числа из промежутка [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. вопрос: как мне сделать выход из цикла после первого успешного деления?
Рекомендуется использовать формулу мальтуса, изменения числа рыб n= k*n-q*n*n если за начальное количество рыб принять n0,то через год рыб в пруду будет n1=n0+k*n0-q*n0*n0,через два года n2=n1+k*n1-q*n1*n1 в таблице excel в ячейку a1 введите значение к=1,в ячейку b1 значение q=0,01,в ячейку с1 значение n0=100, в ячейку в2 формулу =c1+a1*c1-b1*c1*c1 (это количество рыб за 1 год) , в ячейку в3 формулу =b2+$a$1*b2-$b$1*b2*b2(количество рыб за 2 год) , скопируйте формулу с ячейки в3 до ячейки в11. изменяйте значение ячейки а1, например, поставьте значение 1,908, и получите 2000 рыб через 10 лет.
ответ:
. в нужно вывести все составные числа из промежутка [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;