. в нужно вывести все составные числа из промежутка [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. вопрос: как мне сделать выход из цикла после первого успешного деления?
ответ:
. в нужно вывести все составные числа из промежутка [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;
number = int(input())
last_number = 0
even = 0
odd = 0
while (number > 0):
last_number = number % 10
if (last_number % 2 == 0):
even += 1
else:
odd += 1
number //= 10
print("Even = ", even, "Odd = ", odd)
Объяснение:
number = int(input()) // Объявление + ввод переменной
last_number = 0 // Переменная для хранения последней цифры числа
even = 0 // Количество четных
odd = 0 // Количество нечетных
while (number > 0): // Пока число > 0
last_number = number % 10 // Получаем последнюю цифру числа
if (last_number % 2 == 0): // Если цифра делится на 2 без остатка
even += 1 // В переменную even делаем + 1
else: // Иначе
odd += 1 // В переменную odd делаем + 1
number //= 10 // Удаляем последнюю цифру числа
print("Even = ", even, "Odd = ", odd) // Вывод