Два друга петя и вася увлекаются . петя за 1 день может поймать n карасей, вася соответственно m карасей. петя и вася также увлекаются программированием, поэтому на петя может выделить только 2 дня из a дней, а вася только 3 дня из b дней. сколько рыбы поймают друзья за k дней (k кратно a и кратно b).
например, если n = 10, m = 8, a = 5, b =4, k =40, то ответ составит 400
ответом на эту является некоторое выражение, которое может содержать целые числа, переменные a, b, n, m и k (записываемые буквами), операции сложения (обозначается «+»), вычитания (обозначается «−»), умножения (обозначается «*»), деление нацело (обозначается «//»), остаток от деления нацело (обозначается «%») и круглые скобки для изменения порядка действий. запись вида «2a» для обозначения произведения числа 2 и переменной a неверная, нужно писать «2*a». пример правильного (по форме записи) выражения: a * n + (b −a) * 2. операция a // b возвращает значение целой части от деления переменной a на переменную b. операция a % b возвращает значение остатка от деления переменной a на переменную b.
с инфой,время идет
ответ:
. в нужно вывести все составные числа из промежутка [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;